function matchIcon(filename) {
    if (/\.(app|xcodeproj|xcworkspace)$/i.test(filename)) { return "appstore"; }
    if (/\.artx$/i.test(filename)) { return "arttext"; }
    if (/^\.atom$/.test(filename)) { return "atom"; }
    if (/^\.azure-pipelines$/i.test(filename)) { return "azurepipelines"; }
    if (/^\.bzr$/.test(filename)) { return "bazaar"; }
    if (/^bower[-_]components$/.test(filename)) { return "bower"; }
    if (/^\.cabal$/i.test(filename)) { return "cabal"; }
    if (/\.chef$/.test(filename)) { return "chef"; }
    if (/^\.circleci$/.test(filename)) { return "circleci"; }
    if (/^\.cpan$/i.test(filename)) { return "cpan"; }
    if (/^CVS$/.test(filename)) { return "cvs"; }
    if (/\.deno$/i.test(filename)) { return "deno"; }
    if (/^\.docker$/.test(filename)) { return "docker"; }
    if (/^(Dropbox|\.dropbox\.cache)$/.test(filename)) { return "dropbox"; }
    if (/^\.emacs\.d$/.test(filename)) { return "emacs"; }
    if (/^\.fossil-settings$/i.test(filename)) { return "fossil"; }
    if (/\.(appex|framework|ideplugin)$/i.test(filename)) { return "dylib"; }
    if (/\.git$/.test(filename)) { return "git"; }
    if (/^\.github$/.test(filename)) { return "github"; }
    if (/^\.gitlab$/.test(filename)) { return "gitlab"; }
    if (/^\.meteor$/.test(filename)) { return "meteor"; }
    if (/^\.hg$/.test(filename)) { return "hg"; }
    if (/^node_modules$/.test(filename)) { return "node"; }
    if (/^\.(bundle|paket)$/i.test(filename)) { return "package"; }
    if (/^\.svn$/i.test(filename)) { return "svn"; }
    if (/\.tmBundle$/i.test(filename)) { return "textmate"; }
    if (/\.vagrant$/i.test(filename)) { return "vagrant"; }
    if (/\.vagrant\.d$/i.test(filename)) { return "vagrant"; }
    if (/^\.vscode$/i.test(filename)) { return "vs"; }
    if (/\.bsl$/i.test(filename)) { return "1c"; }
    if (/\.sdbl$/i.test(filename)) { return "1c"; }
    if (/\.os$/i.test(filename)) { return "1c"; }
    if (/\.mdo$/i.test(filename)) { return "1c-alt"; }
    if (/\.abap$/i.test(filename)) { return "abap"; }
    if (/\.abif$/i.test(filename)) { return "abif"; }
    if (/\.ab1$/i.test(filename)) { return "abif"; }
    if (/\.fsa$/i.test(filename)) { return "abif"; }
    if (/\.swf$/i.test(filename)) { return "as"; }
    if (/\.as$/i.test(filename)) { return "as"; }
    if (/\.jsfl$/i.test(filename)) { return "as"; }
    if (/\.swc$/i.test(filename)) { return "as"; }
    if (/\.(ada|adb|ads)$/i.test(filename)) { return "ada"; }
    if (/^(ada95|ada2005)$/i.test(filename)) { return "ada"; }
    if (/\.aep$/i.test(filename)) { return "ae"; }
    if (/\.aet$/i.test(filename)) { return "ae"; }
    if (/\.ai$/i.test(filename)) { return "ai"; }
    if (/\.ait$/i.test(filename)) { return "ai"; }
    if (/\.indd$/i.test(filename)) { return "indesign"; }
    if (/\.indl$/i.test(filename)) { return "indesign"; }
    if (/\.indt$/i.test(filename)) { return "indesign"; }
    if (/\.indb$/i.test(filename)) { return "indesign"; }
    if (/\.idml$/i.test(filename)) { return "indesign"; }
    if (/\.psd$/i.test(filename)) { return "psd"; }
    if (/\.psb$/i.test(filename)) { return "psd"; }
    if (/\.prproj$/i.test(filename)) { return "premiere"; }
    if (/\.prel$/i.test(filename)) { return "premiere"; }
    if (/\.psq$/i.test(filename)) { return "premiere"; }
    if (/\.afdesign$/i.test(filename)) { return "affinity"; }
    if (/\.afphoto$/i.test(filename)) { return "affinity"; }
    if (/\.afpub$/i.test(filename)) { return "affinity"; }
    if (/\.alexrc$/i.test(filename)) { return "alex"; }
    if (/\.alexignore$/i.test(filename)) { return "alex"; }
    if (/\.als$/i.test(filename)) { return "alloy"; }
    if (/(\.|^)APKBUILD$/.test(filename)) { return "alpine"; }
    if (/\.ampl$/i.test(filename)) { return "ampl"; }
    if (/\.smali$/i.test(filename)) { return "android"; }
    if (/\.rsh$/i.test(filename)) { return "android"; }
    if (/\.webarchivexml$/i.test(filename)) { return "android"; }
    if (/\.(acs|angelscript)$/i.test(filename)) { return "angelscript"; }
    if (/AngelCode$/i.test(filename)) { return "angelscript"; }
    if (/^angular[^.]*\.js$/i.test(filename)) { return "angular"; }
    if (/\.anme$/i.test(filename)) { return "animestudio"; }
    if (/\.anime$/i.test(filename)) { return "animestudio"; }
    if (/\.animeaction$/i.test(filename)) { return "animestudio"; }
    if (/\.animebrush$/i.test(filename)) { return "animestudio"; }
    if (/\.animeexport$/i.test(filename)) { return "animestudio"; }
    if (/\.animeproj$/i.test(filename)) { return "animestudio"; }
    if (/\.animestyle$/i.test(filename)) { return "animestudio"; }
    if (/(^|\.)ansible(\.ya?ml)?$/i.test(filename)) { return "ansible"; }
    if (/([\\\/])roles\1[^\\\/]+\1(?:tasks|handlers|tests)\1.*\.ya?ml$/i.test(filename)) { return "ansible"; }
    if (/([\\\/])roles\1[^\\\/]+\1(?:defaults|vars|meta)\1.*\.ya?ml$/i.test(filename)) { return "ansible"; }
    if (/([\\\/])(?:group_vars|host_vars)\1.*\.ya?ml$/i.test(filename)) { return "ansible"; }
    if (/(^|.*(\.|-|\/))vault\.ya?ml$$/i.test(filename)) { return "lock"; }
    if (/\.ansiweatherrc$/i.test(filename)) { return "sun"; }
    if (/^ant\.xml$|\.ant$/i.test(filename)) { return "ant"; }
    if (/\.g$/i.test(filename)) { return "antlr"; }
    if (/\.g4$/i.test(filename)) { return "antlr"; }
    if (/^\.?antwar\.conf(ig)?\.js$/i.test(filename)) { return "antwar"; }
    if (/\.any$/i.test(filename)) { return "anyscript"; }
    if (/^(apache2?|httpd)(\.[-\w]+)*.conf$/i.test(filename)) { return "apache"; }
    if (/\.apacheconf$/i.test(filename)) { return "apache"; }
    if (/^httpd\.conf/i.test(filename)) { return "apache"; }
    if (/apache2\/magic$/i.test(filename)) { return "apache"; }
    if (/\.vhost$/i.test(filename)) { return "apache"; }
    if (/\.thrift$/i.test(filename)) { return "apache"; }
    if (/\.apib$/i.test(filename)) { return "api"; }
    if (/\.apl[acfino]?$/i.test(filename)) { return "apl"; }
    if (/\.apl\.history$/i.test(filename)) { return "apl"; }
    if (/^appcelerator\.js$/i.test(filename)) { return "appcelerator"; }
    if (/\.(applescript|scpt)$/i.test(filename)) { return "apple"; }
    if (/^com\.apple\./.test(filename)) { return "apple"; }
    if (/^\.?appveyor\.yml$/i.test(filename)) { return "appveyor"; }
    if (/\.arc$/i.test(filename)) { return "arc"; }
    if (/^\.install$/.test(filename)) { return "archlinux"; }
    if (/^\.SRCINFO$/.test(filename)) { return "archlinux"; }
    if (/^pacman\.conf$/.test(filename)) { return "archlinux"; }
    if (/^pamac\.conf$/.test(filename)) { return "archlinux"; }
    if (/^PKGBUILD$/.test(filename)) { return "archlinux"; }
    if (/yaourtrc$/i.test(filename)) { return "archlinux"; }
    if (/\.ino$/i.test(filename)) { return "arduino"; }
    if (/\.(ad|adoc|asc|asciidoc)$/i.test(filename)) { return "asciidoctor"; }
    if (/\.asp$/i.test(filename)) { return "asp"; }
    if (/\.asax$/i.test(filename)) { return "asp"; }
    if (/\.ascx$/i.test(filename)) { return "asp"; }
    if (/\.ashx$/i.test(filename)) { return "asp"; }
    if (/\.asmx$/i.test(filename)) { return "asp"; }
    if (/\.aspx$/i.test(filename)) { return "asp"; }
    if (/\.axd$/i.test(filename)) { return "asp"; }
    if (/\.aj$/i.test(filename)) { return "eclipse"; }
    if (/\.(l?a|[ls]?o|out|s|a51|asm|axf|elf|prx|puff|z80)$/i.test(filename)) { return "binary"; }
    if (/\.agc$/i.test(filename)) { return "binary"; }
    if (/\.ditroff$/i.test(filename)) { return "binary"; }
    if (/\.ko$/i.test(filename)) { return "binary"; }
    if (/\.lst$/i.test(filename)) { return "binary"; }
    if (/\.((c([+px]{2}?)?-?)?objdump|bsdiff|bin|dat|pak|pdb)$/i.test(filename)) { return "binary"; }
    if (/\.d-objdump$/i.test(filename)) { return "binary"; }
    if (/\.(gco?|gcode|[cdhk]nc)$/i.test(filename)) { return "binary"; }
    if (/\.rpy[bc]$/i.test(filename)) { return "binary"; }
    if (/\.py[co]$/i.test(filename)) { return "binary"; }
    if (/\.swp$/i.test(filename)) { return "binary"; }
    if (/^\.rnd$/i.test(filename)) { return "binary"; }
    if (/\.PLX(COPY)?$/.test(filename)) { return "binary"; }
    if (/\.asy$/i.test(filename)) { return "asymptote"; }
    if (/\.atomproject\.[jc]son$/i.test(filename)) { return "atom"; }
    if (/^\.?atoum(\.[^.]+)*\.php/i.test(filename)) { return "atoum"; }
    if (/\.dats$/i.test(filename)) { return "ats"; }
    if (/\.hats$/i.test(filename)) { return "ats"; }
    if (/\.sats$/i.test(filename)) { return "ats"; }
    if (/\.aup$/i.test(filename)) { return "audacity"; }
    if (/\.mp3$/i.test(filename)) { return "audio"; }
    if (/\.wav$/i.test(filename)) { return "audio"; }
    if (/\.(aac|ac3|m4p)$/i.test(filename)) { return "audio"; }
    if (/\.aif[fc]?$/i.test(filename)) { return "audio"; }
    if (/\.au$/i.test(filename)) { return "audio"; }
    if (/\.flac$/i.test(filename)) { return "audio"; }
    if (/\.f4[ab]$/i.test(filename)) { return "audio"; }
    if (/\.m4a$/i.test(filename)) { return "audio"; }
    if (/\.(mpc|mp\+)$/i.test(filename)) { return "audio"; }
    if (/\.oga$/i.test(filename)) { return "audio"; }
    if (/\.opus$/i.test(filename)) { return "audio"; }
    if (/\.r[am]$/i.test(filename)) { return "audio"; }
    if (/\.wma$/i.test(filename)) { return "audio"; }
    if (/\.aug$/i.test(filename)) { return "augeas"; }
    if (/^aurelia\.json$/i.test(filename)) { return "aurelia"; }
    if (/\.ahk$/i.test(filename)) { return "ahk"; }
    if (/\.ahkl$/i.test(filename)) { return "ahk"; }
    if (/\.au3$/i.test(filename)) { return "autoit"; }
    if (/^(AutoIt3|AutoItScript|au3)$/i.test(filename)) { return "autoit"; }
    if (/\.av(cs|sc|dl)$/i.test(filename)) { return "avro"; }
    if (/^azure-pipelines\.ya?ml$/i.test(filename)) { return "azurepipelines"; }
    if (/\.(babelrc|babelrc\.js|languagebabel|babel)$/i.test(filename)) { return "babel"; }
    if (/babel(\.[\w\-]+)*\.conf(ig)?\./i.test(filename)) { return "babel"; }
    if (/\.babelignore$/i.test(filename)) { return "babel"; }
    if (/^backbone([-.]min|dev)?\.js$/i.test(filename)) { return "backbone"; }
    if (/\.(bak|old|orig)$/.test(filename)) { return "backup"; }
    if (/\.bal$/i.test(filename)) { return "ballerina"; }
    if (/\.bzrignore$/i.test(filename)) { return "bazaar"; }
    if (/^(\.bazelrc|bazel\.rc|bazel\.bazelrc)$/i.test(filename)) { return "bazel"; }
    if (/^(BUILD|WORKSPACE)(.[Bb][Aa][Zz][Ee][Ll])?$/.test(filename)) { return "bazel"; }
    if (/\.bzl$/i.test(filename)) { return "bazel"; }
    if (/^\.gazelcfg\.json$/i.test(filename)) { return "bazel"; }
    if (/^behat(\.[^.]+)*\.ya?ml$/i.test(filename)) { return "behat"; }
    if (/\.bemjson(\.js)?$/i.test(filename)) { return "bem"; }
    if (/\.cbx$/i.test(filename)) { return "bibtex"; }
    if (/\.bbx$/i.test(filename)) { return "bibtex"; }
    if (/\.bib$/i.test(filename)) { return "bibtex"; }
    if (/\.bst$/i.test(filename)) { return "bibtex"; }
    if (/^\.bintray\.json$/i.test(filename)) { return "bintray"; }
    if (/\.bison$/i.test(filename)) { return "gnu"; }
    if (/^bitbucket-pipelines\.ya?ml$/i.test(filename)) { return "bitbucket"; }
    if (/\.bithoundrc$/i.test(filename)) { return "bithound"; }
    if (/\.blend$/i.test(filename)) { return "blender"; }
    if (/\.blend\d+$/i.test(filename)) { return "blender"; }
    if (/\.bphys$/i.test(filename)) { return "blender"; }
    if (/\.bsv$/i.test(filename)) { return "bluespec"; }
    if (/\.boo$/i.test(filename)) { return "boo"; }
    if (/\.boot$/i.test(filename)) { return "boot"; }
    if (/^Makefile\.boot$/i.test(filename)) { return "boot"; }
    if (/^(custom\.)?bootstrap\S*\.js$/i.test(filename)) { return "bootstrap"; }
    if (/^(custom\.)?bootstrap\S*\.css$/i.test(filename)) { return "bootstrap"; }
    if (/^(custom\.)?bootstrap\S*\.less$/i.test(filename)) { return "bootstrap"; }
    if (/^(custom\.)?bootstrap\S*\.scss$/i.test(filename)) { return "bootstrap"; }
    if (/^(custom\.)?bootstrap\S*\.styl$/i.test(filename)) { return "bootstrap"; }
    if (/\.bootstraprc$/i.test(filename)) { return "bootstrap"; }
    if (/^(\.bowerrc|bower\.json|Bowerfile)$/i.test(filename)) { return "bower"; }
    if (/\.bf?$/i.test(filename)) { return "brain"; }
    if (/^(bf|Brainf\**ck)$/i.test(filename)) { return "brain"; }
    if (/brakeman\.yml$/i.test(filename)) { return "brakeman"; }
    if (/^brakeman\.ignore$/i.test(filename)) { return "brakeman"; }
    if (/^Brewfile$/.test(filename)) { return "brew"; }
    if (/\.bro$/i.test(filename)) { return "bro"; }
    if (/^Brocfile\./i.test(filename)) { return "broccoli"; }
    if (/\.br$/i.test(filename)) { return "brotli"; }
    if (/^(browserslist|\.browserslistrc)$/i.test(filename)) { return "browserslist"; }
    if (/^(bs-config|browser-sync)\.(js|json)$/i.test(filename)) { return "browsersync"; }
    if (/^brunch-config\.(js|coffee|ts)$/i.test(filename)) { return "brunch"; }
    if (/\.buckconfig$/i.test(filename)) { return "buck"; }
    if (/^BUCK$/.test(filename)) { return "buck"; }
    if (/^Gemfile(\.lock)?$/i.test(filename)) { return "bundler"; }
    if (/\.gemfile$/i.test(filename)) { return "bundler"; }
    if (/\.dm$/i.test(filename)) { return "byond"; }
    if (/^(DM|Dream\s*Maker(\s*Script)?)$/i.test(filename)) { return "byond"; }
    if (/\.c$/i.test(filename)) { return "c"; }
    if (/\.h$/i.test(filename)) { return "c"; }
    if (/\.cats$/i.test(filename)) { return "c"; }
    if (/\.idc$/i.test(filename)) { return "c"; }
    if (/\.w$/i.test(filename)) { return "c"; }
    if (/\.nc$/i.test(filename)) { return "c"; }
    if (/\.upc$/i.test(filename)) { return "c"; }
    if (/\.xbm$/i.test(filename)) { return "c"; }
    if (/\.xpm$/i.test(filename)) { return "c"; }
    if (/\.c[+px]{2}$|\.cc$/i.test(filename)) { return "cpp"; }
    if (/\.h[+px]{2}$/i.test(filename)) { return "cpp"; }
    if (/\.[it]pp$/i.test(filename)) { return "cpp"; }
    if (/\.(tcc|inl)$/i.test(filename)) { return "cpp"; }
    if (/\.cs$/i.test(filename)) { return "csharp"; }
    if (/^c\s*sharp$/i.test(filename)) { return "csharp"; }
    if (/\.csx$/i.test(filename)) { return "csscript"; }
    if (/\.cabal$/i.test(filename)) { return "cabal"; }
    if (/^cabal\.(config|project)$/i.test(filename)) { return "cabal"; }
    if (/^cabal-ghcjs\.project$/i.test(filename)) { return "cabal"; }
    if (/^cabal\../i.test(filename)) { return "cabal"; }
    if (/^Caddyfile($|[-.])/i.test(filename)) { return "caddy"; }
    if (/\.caffemodel$/i.test(filename)) { return "caffe"; }
    if (/\.solverstate$/i.test(filename)) { return "caffe"; }
    if (/\.caffe2model$/i.test(filename)) { return "caffe2"; }
    if (/^(init|predict)_net\.pb$/i.test(filename)) { return "caffe2"; }
    if (/^(deploy|solver|train_val)\.prototxt$/i.test(filename)) { return "caffe2"; }
    if (/\.cake$/i.test(filename)) { return "cake"; }
    if (/^Cakefile$/.test(filename)) { return "cakefile"; }
    if (/\.ctp$/i.test(filename)) { return "cakephp"; }
    if (/^Cartfile(\.|$)/.test(filename)) { return "carthage"; }
    if (/\.ceylon$/i.test(filename)) { return "ceylon"; }
    if (/^chai\.([jt]sx?|es6?|coffee)$/i.test(filename)) { return "chai"; }
    if (/\.chpl$/i.test(filename)) { return "chapel"; }
    if (/chpl$/i.test(filename)) { return "chapel"; }
    if (/^Chart(\.bundle)?(\.min)?\.js$/i.test(filename)) { return "chartjs"; }
    if (/TODO/.test(filename)) { return "checklist"; }
    if (/^todo.txt$/i.test(filename)) { return "checklist"; }
    if (/\.(todo|taskpaper)$/i.test(filename)) { return "checklist"; }
    if (/^chefignore$|^(Berks|Policy)file(\.lock)?$/i.test(filename)) { return "chef"; }
    if (/^chocolatey.*\.ps1$/i.test(filename)) { return "chocolatey"; }
    if (/\.ck$/i.test(filename)) { return "chuck"; }
    if (/\.crx$/i.test(filename)) { return "chrome"; }
    if (/^circle\.yml$/i.test(filename)) { return "circleci"; }
    if (/\.brd$/i.test(filename)) { return "icon-circuit-board"; }
    if (/\.sch$/i.test(filename)) { return "icon-circuit-board"; }
    if (/\.pcb$/i.test(filename)) { return "icon-circuit-board"; }
    if (/\.gbr$/i.test(filename)) { return "icon-circuit-board"; }
    if (/\.gtl$/i.test(filename)) { return "icon-circuit-board"; }
    if (/\.gbl$/i.test(filename)) { return "icon-circuit-board"; }
    if (/\.gbs$/i.test(filename)) { return "icon-circuit-board"; }
    if (/\.gto$/i.test(filename)) { return "icon-circuit-board"; }
    if (/\.gts$/i.test(filename)) { return "icon-circuit-board"; }
    if (/\.gtp$/i.test(filename)) { return "icon-circuit-board"; }
    if (/\.gbo$/i.test(filename)) { return "icon-circuit-board"; }
    if (/\.gbp$/i.test(filename)) { return "icon-circuit-board"; }
    if (/\.drl$/i.test(filename)) { return "icon-circuit-board"; }
    if (/\.dsn$/i.test(filename)) { return "icon-circuit-board"; }
    if (/\.gko$/i.test(filename)) { return "icon-circuit-board"; }
    if (/\.gpt$/i.test(filename)) { return "icon-circuit-board"; }
    if (/\.gpb$/i.test(filename)) { return "icon-circuit-board"; }
    if (/\.gm\d+$/i.test(filename)) { return "icon-circuit-board"; }
    if (/\.g[0-9]+$/i.test(filename)) { return "icon-circuit-board"; }
    if (/^PCB\.[0-9]+(\.backup~?)?$/.test(filename)) { return "icon-circuit-board"; }
    if (/\.(cir|ckt|struct|tech)$/i.test(filename)) { return "icon-circuit-board"; }
    if (/\.fab$/i.test(filename)) { return "icon-circuit-board"; }
    if (/\.net$/i.test(filename)) { return "icon-circuit-board"; }
    if (/\.pho$/i.test(filename)) { return "icon-circuit-board"; }
    if (/\.cirru$/i.test(filename)) { return "cirru"; }
    if (/\.clw$/i.test(filename)) { return "clarion"; }
    if (/\.icl$/i.test(filename)) { return "clean"; }
    if (/\.dcl$/i.test(filename)) { return "clean"; }
    if (/\.abc$/i.test(filename)) { return "clean"; }
    if (/\.click$/i.test(filename)) { return "click"; }
    if (/Click!$/i.test(filename)) { return "click"; }
    if (/\.clp$/i.test(filename)) { return "clips"; }
    if (/\.clj$/i.test(filename)) { return "clojure"; }
    if (/\.cl2$/i.test(filename)) { return "clojure"; }
    if (/\.cljc$/i.test(filename)) { return "clojure"; }
    if (/\.cljx$/i.test(filename)) { return "clojure"; }
    if (/\.hic$/i.test(filename)) { return "clojure"; }
    if (/\.cljs(cm)?$/i.test(filename)) { return "cljs"; }
    if (/\.soy$/i.test(filename)) { return "closure-tpl"; }
    if (/\.cfignore$/i.test(filename)) { return "cloudfoundry"; }
    if (/\.cmake$/i.test(filename)) { return "cmake"; }
    if (/^CMakeLists\.txt$/.test(filename)) { return "cmake"; }
    if (/\.(cob|ccp|cbl|cobol|cpy)$/i.test(filename)) { return "cobol"; }
    if (/\.podspec$/i.test(filename)) { return "cocoapods"; }
    if (/\.codacy\.ya?ml$/i.test(filename)) { return "codacy"; }
    if (/\.codeclimate\.yml$/i.test(filename)) { return "cc"; }
    if (/^codecov\.ya?ml$/i.test(filename)) { return "codecov"; }
    if (/(^config)?\.codekit\d*$/i.test(filename)) { return "codekit"; }
    if (/^codeship-[\w.-]+\.ya?ml$/i.test(filename)) { return "codeship"; }
    if (/\.coffee$/i.test(filename)) { return "coffee"; }
    if (/\.cjsx$/i.test(filename)) { return "coffee"; }
    if (/\.coffee\.ecr$/i.test(filename)) { return "coffee"; }
    if (/\.coffee\.erb$/i.test(filename)) { return "coffee"; }
    if (/\.litcoffee$/i.test(filename)) { return "coffee"; }
    if (/\.iced$/i.test(filename)) { return "coffee"; }
    if (/\.cfc$/i.test(filename)) { return "cf"; }
    if (/\.cfml?$/i.test(filename)) { return "cf"; }
    if (/\.dae$/i.test(filename)) { return "khronos"; }
    if (/\.cl$/i.test(filename)) { return "cl"; }
    if (/^c?lisp$/i.test(filename)) { return "cl"; }
    if (/^_?(compass|lemonade)\.scss$/i.test(filename)) { return "compass"; }
    if (/\.cp$/i.test(filename)) { return "cp"; }
    if (/\.cps$/i.test(filename)) { return "cp"; }
    if (/^composer\.(json|lock)$/i.test(filename)) { return "composer"; }
    if (/^composer\.phar$/i.test(filename)) { return "composer"; }
    if (/\.(zip|z|xz)$/i.test(filename)) { return "zip"; }
    if (/\.rar$/i.test(filename)) { return "zip"; }
    if (/\.t?gz$/i.test(filename)) { return "zip"; }
    if (/\.(lzo?|lzma|tlz|tar\.lzma)$/i.test(filename)) { return "zip"; }
    if (/\.7z$/i.test(filename)) { return "zip"; }
    if (/\.apk$/i.test(filename)) { return "zip"; }
    if (/\.tar$/i.test(filename)) { return "zip"; }
    if (/\.bz2$/i.test(filename)) { return "zip"; }
    if (/\.maff$/i.test(filename)) { return "zip"; }
    if (/\.iso$/i.test(filename)) { return "zip"; }
    if (/\.xpi$/i.test(filename)) { return "zip"; }
    if (/\.gem$/i.test(filename)) { return "zip"; }
    if (/\.whl$/i.test(filename)) { return "zip"; }
    if (/\.epub$/i.test(filename)) { return "zip"; }
    if (/\.jar$/i.test(filename)) { return "zip"; }
    if (/\.war$/i.test(filename)) { return "zip"; }
    if (/\.wgt$/i.test(filename)) { return "zip"; }
    if (/\.xar$/i.test(filename)) { return "zip"; }
    if (/\.egg$/i.test(filename)) { return "zip"; }
    if (/\.sit$/i.test(filename)) { return "zip"; }
    if (/^(conanfile\.(txt|py)|conan\.conf)$/i.test(filename)) { return "conan"; }
    if (/\.(ini|desktop|directory|cfg|conf|prefs)$/i.test(filename)) { return "config"; }
    if (/\.properties$/i.test(filename)) { return "config"; }
    if (/\.ld$/i.test(filename)) { return "config"; }
    if (/\.lds$/i.test(filename)) { return "config"; }
    if (/\.opts$/i.test(filename)) { return "config"; }
    if (/^mimeapps\.list$/i.test(filename)) { return "config"; }
    if (/(\.|^)terminal(rc)?$/i.test(filename)) { return "config"; }
    if (/^ld\.script$/i.test(filename)) { return "config"; }
    if (/^\.?XCompose$/.test(filename)) { return "config"; }
    if (/^buildozer\.spec$/i.test(filename)) { return "config"; }
    if (/config|settings|option|pref/i.test(filename)) { return "config"; }
    if (/\.flc$/i.test(filename)) { return "config"; }
    if (/\/dev[-\w]+\/([^\/]+\/)*(DESC|Foundry|download|symbolmap)(\.in|\.proto)?$/.test(filename)) { return "config"; }
    if (/[\/\\]fontforge[\/\\]hotkeys[\/\\][^\/\\]+/i.test(filename)) { return "config"; }
    if (/\.git[\/\\](config|info[\/\\]\w+)$/.test(filename)) { return "config"; }
    if (/(^|[\/\\])\.fossil-settings\1(?:[^\/\/]+)/.test(filename)) { return "config"; }
    if (/(^|[\/\\])\.ssh[\/\\]config$/.test(filename)) { return "config"; }
    if (/^\/(private\/)?etc\/([^\/]+\/)*[^\/]*\.(cf|conf|ini)(\.default)?$/i.test(filename)) { return "config"; }
    if (/^\/(private\/)?etc\/(aliases|auto_(home|master)|ftpusers|group|gettytab|hosts(\.equiv)?|manpaths|networks|paths|protocols|services|shells|sudoers|ttys)$/i.test(filename)) { return "config"; }
    if (/^coffeelint\.json$/i.test(filename)) { return "config-coffee"; }
    if (/\.coffeelintignore$/i.test(filename)) { return "config-coffee"; }
    if (/^go\.mod$/i.test(filename)) { return "config-go"; }
    if (/^go\.sum$/i.test(filename)) { return "config-go"; }
    if (/^haskellconfig\.json$/i.test(filename)) { return "config-hs"; }
    if (/^jsconfig(\..+)?\.json$/i.test(filename)) { return "config-js"; }
    if (/^perl[56]?-?config\.json$/i.test(filename)) { return "config-perl"; }
    if (/^python-?config\.json$/i.test(filename)) { return "config-python"; }
    if (/^jsxconfig\.json$/i.test(filename)) { return "config-react"; }
    if (/^rubyconfig\.json$/i.test(filename)) { return "config-ruby"; }
    if (/^rustconfig\.json$/i.test(filename)) { return "config-rust"; }
    if (/^tsconfig(\..+)?\.json$/i.test(filename)) { return "config-ts"; }
    if (/^tslint\.json$/i.test(filename)) { return "config-ts"; }
    if (/\.conll$/i.test(filename)) { return "conll"; }
    if (/\.conllu$/i.test(filename)) { return "conll"; }
    if (/\.coq$/i.test(filename)) { return "coq"; }
    if (/^cordova([^.]*\.|-(\d\.)+)js$/i.test(filename)) { return "cordova"; }
    if (/\.(cmx|ccx)$/i.test(filename)) { return "corel"; }
    if (/\.(cdrx?|cdt)$/i.test(filename)) { return "coreldraw"; }
    if (/^\.coveralls\.ya?ml$/i.test(filename)) { return "coveralls"; }
    if (/^cpanfile$/i.test(filename)) { return "cpan"; }
    if (/^META\.yml$/.test(filename)) { return "cpan"; }
    if (/^META\.json$/.test(filename)) { return "cpan"; }
    if (/^MANIFEST\.SKIP$/.test(filename)) { return "cpan"; }
    if (/\.creole$/i.test(filename)) { return "creole"; }
    if (/^crowdin\.ya?ml$/i.test(filename)) { return "crowdin"; }
    if (/\.e?cr$/i.test(filename)) { return "crystal"; }
    if (/\.orc$/i.test(filename)) { return "csound"; }
    if (/\.udo$/i.test(filename)) { return "csound"; }
    if (/\.csd$/i.test(filename)) { return "csound"; }
    if (/\.sco$/i.test(filename)) { return "csound"; }
    if (/\.css$/i.test(filename)) { return "css3"; }
    if (/\.less$/i.test(filename)) { return "css3"; }
    if (/\.feature$/i.test(filename)) { return "cucumber"; }
    if (/gherkin$/i.test(filename)) { return "cucumber"; }
    if (/\.cu$/i.test(filename)) { return "nvidia"; }
    if (/\.cuh$/i.test(filename)) { return "nvidia"; }
    if (/^\.curlrc$/i.test(filename)) { return "curl"; }
    if (/\.cvsignore$/i.test(filename)) { return "cvs"; }
    if (/\.cwl$/i.test(filename)) { return "cwl"; }
    if (/Common Workflow Language$/i.test(filename)) { return "cwl"; }
    if (/\.pyx$/i.test(filename)) { return "cython"; }
    if (/\.pxd$/i.test(filename)) { return "cython"; }
    if (/\.pxi$/i.test(filename)) { return "cython"; }
    if (/\.di?$/i.test(filename)) { return "dlang"; }
    if (/^d3(\.v\d+)?[^.]*\.js$/i.test(filename)) { return "d3"; }
    if (/\.dnh$/i.test(filename)) { return "yang"; }
    if (/\.d(arcs)?patch$/i.test(filename)) { return "darcs"; }
    if (/^\.boringignore$/i.test(filename)) { return "darcs"; }
    if (/\.dart$/i.test(filename)) { return "dart"; }
    if (/\.s[kl]im$/i.test(filename)) { return "dashboard"; }
    if (/\.cpuprofile$/i.test(filename)) { return "dashboard"; }
    if (/\.cloc$/i.test(filename)) { return "dashboard"; }
    if (/\.cson$/i.test(filename)) { return "database"; }
    if (/\.hson$/i.test(filename)) { return "database"; }
    if (/\.http$/i.test(filename)) { return "database"; }
    if (/\.ndjson$/i.test(filename)) { return "database"; }
    if (/\.fea$/i.test(filename)) { return "database"; }
    if (/\.json\.eex$/i.test(filename)) { return "database"; }
    if (/\.(proto|protote?xt|pbte?xt)$/i.test(filename)) { return "database"; }
    if (/\.pytb$/i.test(filename)) { return "database"; }
    if (/\.pydeps$/i.test(filename)) { return "database"; }
    if (/\.pot?$/i.test(filename)) { return "database"; }
    if (/\.ejson$/i.test(filename)) { return "database"; }
    if (/\.edn$/i.test(filename)) { return "database"; }
    if (/\.eam\.fs$/i.test(filename)) { return "database"; }
    if (/\.ston$/i.test(filename)) { return "database"; }
    if (/\.ttl$/i.test(filename)) { return "database"; }
    if (/\.schema$/i.test(filename)) { return "database"; }
    if (/\.syntax$/i.test(filename)) { return "database"; }
    if (/\.webmanifest$/i.test(filename)) { return "database"; }
    if (/\.yas(nippet)?$/i.test(filename)) { return "database"; }
    if (/(^|\.)fonts\.(dir|scale|alias)$/i.test(filename)) { return "database"; }
    if (/(^|\.)encodings\.dir$/i.test(filename)) { return "database"; }
    if (/^pkginfo$/i.test(filename)) { return "database"; }
    if (/^term(cap|info)/i.test(filename)) { return "database"; }
    if (/^(mime\.types|fstab)$/i.test(filename)) { return "database"; }
    if (/^METADATA\.pb$/.test(filename)) { return "database"; }
    if (/\.(ldj|ldjson|jsonl)$/.test(filename)) { return "database"; }
    if (/\.(irb-history|lesshst|wget-hsts)$/i.test(filename)) { return "database"; }
    if (/^(magic\.mgc|figmagic)$/i.test(filename)) { return "database"; }
    if (/[\/\\](?:magic[\/\\]Magdir|file[\/\\]magic)[\/\\][-.\w]+$/i.test(filename)) { return "database"; }
    if (/(\\|\/)dev[-\w]+\1(?:[^\\\/]+\1)*(?!DESC|NOTES)(?:[A-Z][-A-Z]*)(?:\.in)?$/.test(filename)) { return "database"; }
    if (/\.ssh[\/\\](authorized_keys|known_hosts)$/.test(filename)) { return "database"; }
    if (/^\.icondb\.js$/.test(filename)) { return "database"; }
    if (/\.git[\/\\](.*[\/\\])?(HEAD|ORIG_HEAD|packed-refs|logs[\/\\](.+[\/\\])?[^\/\\]+)$/.test(filename)) { return "database"; }
    if (/\.dwl$/i.test(filename)) { return "dataweave"; }
    if (/\.dbf$/i.test(filename)) { return "dbase"; }
    if (/\.deb$/i.test(filename)) { return "debian"; }
    if (/(^|\.)(control|dsc)$/.test(filename)) { return "debian"; }
    if (/^rules$/.test(filename)) { return "debian"; }
    if (/\.dfm$/i.test(filename)) { return "delphi"; }
    if (/\.dpr$/i.test(filename)) { return "delphi"; }
    if (/\.dmark$/i.test(filename)) { return "icon-star"; }
    if (/^d[_\W]?mark$/i.test(filename)) { return "icon-star"; }
    if (/\.dts$/i.test(filename)) { return "devicetree"; }
    if (/\.dtsi$/i.test(filename)) { return "devicetree"; }
    if (/\.dia$/i.test(filename)) { return "dia"; }
    if (/\.diff$/i.test(filename)) { return "diff"; }
    if (/\.diffs$/i.test(filename)) { return "diff"; }
    if (/\.dig$/i.test(filename)) { return "digdag"; }
    if (/\.zone$/i.test(filename)) { return "earth"; }
    if (/\.arpa$/i.test(filename)) { return "earth"; }
    if (/^CNAME$/.test(filename)) { return "earth"; }
    if (/^(Dockerfile|docker-compose)|\.docker(file|ignore)$/i.test(filename)) { return "docker"; }
    if (/^docker-sync\.yml$/i.test(filename)) { return "docker"; }
    if (/\.doclets\.ya?ml$/i.test(filename)) { return "doclets"; }
    if (/\.eco$/i.test(filename)) { return "docpad"; }
    if (/\.djs$/i.test(filename)) { return "doge"; }
    if (/^dojo\.js$/i.test(filename)) { return "dojo"; }
    if (/^dosbox(\b|_).*(\.conf|pref\w*)$/i.test(filename)) { return "dosbox"; }
    if (/\.dot$/i.test(filename)) { return "dotjs"; }
    if (/\.crdownload$/i.test(filename)) { return "download"; }
    if (/^\.?Doxyfile$/i.test(filename)) { return "doxygen"; }
    if (/^dragula(\.min)?\.(js|css)$/i.test(filename)) { return "dragula"; }
    if (/\.drone\.ya?ml$/i.test(filename)) { return "drone"; }
    if (/\.dyalog$/i.test(filename)) { return "dyalog"; }
    if (/\.dyapp$/i.test(filename)) { return "dyalog"; }
    if (/\.mipage$/i.test(filename)) { return "dyalog"; }
    if (/\.(dylib|bundle)$/i.test(filename)) { return "dylib"; }
    if (/\.E$/.test(filename)) { return "e"; }
    if (/\.eup$/i.test(filename)) { return "eagle"; }
    if (/\.eb$/i.test(filename)) { return "easybuild"; }
    if (/\.ec$/i.test(filename)) { return "ec"; }
    if (/\.eh$/i.test(filename)) { return "ec"; }
    if (/\.epj$/i.test(filename)) { return "ecere"; }
    if (/\.c?project$/.test(filename)) { return "eclipse"; }
    if (/\.classpath$/i.test(filename)) { return "eclipse"; }
    if (/\.editorconfig$/i.test(filename)) { return "editorconfig"; }
    if (/\.edge$/i.test(filename)) { return "edge"; }
    if (/\.e$/.test(filename)) { return "eiffel"; }
    if (/\.ejs$/i.test(filename)) { return "ejs"; }
    if (/\.compilerc(\.json)?$/i.test(filename)) { return "electron"; }
    if (/\.ex$/i.test(filename)) { return "elixir"; }
    if (/\.(exs|eex)$/i.test(filename)) { return "elixir"; }
    if (/^mix\.(exs?|lock)$/i.test(filename)) { return "elixir"; }
    if (/\.elm$/i.test(filename)) { return "elm"; }
    if (/(^|\.)(el|_?emacs|emacs\.desktop|abbrev[-_]defs)$/i.test(filename)) { return "emacs"; }
    if (/(^|\.)(elc|eld)$/i.test(filename)) { return "emacs"; }
    if (/\.gnus$/i.test(filename)) { return "emacs"; }
    if (/\.viper$/i.test(filename)) { return "emacs"; }
    if (/^Cask$/.test(filename)) { return "emacs"; }
    if (/^Project\.ede$/i.test(filename)) { return "emacs"; }
    if (/^(authors|(code)?owners)$/i.test(filename)) { return "at"; }
    if (/^ember(\.|(-[^.]+)?-(\d+\.)+(debug\.)?)js$/i.test(filename)) { return "ember"; }
    if (/\.emberscript$/i.test(filename)) { return "em"; }
    if (/\.em(blem)?$/i.test(filename)) { return "mustache"; }
    if (/\.ensime$/i.test(filename)) { return "ensime"; }
    if (/\.eq$/i.test(filename)) { return "eq"; }
    if (/\.erl$/i.test(filename)) { return "erlang"; }
    if (/\.beam$/i.test(filename)) { return "erlang"; }
    if (/\.hrl$/i.test(filename)) { return "erlang"; }
    if (/\.xrl$/i.test(filename)) { return "erlang"; }
    if (/\.yrl$/i.test(filename)) { return "erlang"; }
    if (/\.app\.src$/i.test(filename)) { return "erlang"; }
    if (/^Emakefile$/.test(filename)) { return "erlang"; }
    if (/^rebar(\.config)?\.lock$/i.test(filename)) { return "erlang"; }
    if (/^\.?esdoc\.js(on)?$/i.test(filename)) { return "esdoc"; }
    if (/\.eslint(cache|ignore)$/i.test(filename)) { return "eslint"; }
    if (/\.eslintrc(\.(js|json|ya?ml))?$/i.test(filename)) { return "eslint"; }
    if (/\bExtjs(-ext)?\.js$/i.test(filename)) { return "extjs"; }
    if (/^fabfile\.py$/i.test(filename)) { return "fabfile"; }
    if (/\.factor$/i.test(filename)) { return "factor"; }
    if (/\.factor-rc$/i.test(filename)) { return "factor"; }
    if (/\.factor-boot-rc$/i.test(filename)) { return "factor"; }
    if (/\.fal(con)?$/i.test(filename)) { return "falcon"; }
    if (/\.fy$/i.test(filename)) { return "fancy"; }
    if (/\.fancypack$/i.test(filename)) { return "fancy"; }
    if (/^Fakefile$/.test(filename)) { return "fancy"; }
    if (/\.fan$/i.test(filename)) { return "fantom"; }
    if (/\.(fasta|fas?|seq|fsa)$/i.test(filename)) { return "dna"; }
    if (/\.(fastq|fq)$/i.test(filename)) { return "dna"; }
    if (/\.(faa|mpfa)$/i.test(filename)) { return "dna"; }
    if (/\.fna$/i.test(filename)) { return "dna"; }
    if (/\.ffn$/i.test(filename)) { return "dna"; }
    if (/\.frn$/i.test(filename)) { return "dna"; }
    if (/\.sam$/i.test(filename)) { return "dna"; }
    if (/\.fbx$/i.test(filename)) { return "fbx"; }
    if (/^Icon\r$/.test(filename)) { return "finder"; }
    if (/\.rsrc$/i.test(filename)) { return "finder"; }
    if (/^\._./.test(filename)) { return "finder"; }
    if (/\.DS_Store$/i.test(filename)) { return "finder"; }
    if (/^firebase\.json$/i.test(filename)) { return "firebase"; }
    if (/^firestore\.rules?$/i.test(filename)) { return "firebase"; }
    if (/\.firebaserc$/i.test(filename)) { return "firebase"; }
    if (/\.bolt$/i.test(filename)) { return "firebase-bolt"; }
    if (/\.webapp$/i.test(filename)) { return "firefox"; }
    if (/^flask([-_.].*)\.py$/i.test(filename)) { return "flask"; }
    if (/\.flooignore$/i.test(filename)) { return "floobits"; }
    if (/\.(flowconfig|js\.flow|flow)$/i.test(filename)) { return "flow"; }
    if (/\.fx$/i.test(filename)) { return "flux"; }
    if (/\.flux$/i.test(filename)) { return "flux"; }
    if (/\.flutter-plugins$/i.test(filename)) { return "flutter"; }
    if (/\.woff2$/i.test(filename)) { return "font"; }
    if (/\.woff$/i.test(filename)) { return "font"; }
    if (/\.eot$/i.test(filename)) { return "font"; }
    if (/\.ttc$/i.test(filename)) { return "font"; }
    if (/\.ttf$/i.test(filename)) { return "font"; }
    if (/\.otf$/i.test(filename)) { return "font"; }
    if (/\.pfb$/i.test(filename)) { return "font"; }
    if (/\.pfm$/i.test(filename)) { return "font"; }
    if (/\.psfu?$/i.test(filename)) { return "font-bitmap"; }
    if (/\.pcf$/i.test(filename)) { return "font-bitmap"; }
    if (/\.psftx$/i.test(filename)) { return "font-bitmap"; }
    if (/\.bdf$/i.test(filename)) { return "font-bitmap"; }
    if (/\.fnt$/i.test(filename)) { return "font-bitmap"; }
    if (/\.fon$/i.test(filename)) { return "font-bitmap"; }
    if (/\.snf$/i.test(filename)) { return "font-bitmap"; }
    if (/\.flf$/i.test(filename)) { return "font-bitmap"; }
    if (/\.tlf$/i.test(filename)) { return "font-bitmap"; }
    if (/\.pe$/i.test(filename)) { return "ff"; }
    if (/\.sfd$/i.test(filename)) { return "ff"; }
    if (/\.f$/i.test(filename)) { return "fortran"; }
    if (/\.f90$/i.test(filename)) { return "fortran"; }
    if (/\.f03$/i.test(filename)) { return "fortran"; }
    if (/\.f08$/i.test(filename)) { return "fortran"; }
    if (/\.f77$/i.test(filename)) { return "fortran"; }
    if (/\.f95$/i.test(filename)) { return "fortran"; }
    if (/\.for$/i.test(filename)) { return "fortran"; }
    if (/\.fpp$/i.test(filename)) { return "fortran"; }
    if (/\.fossa\.ya?ml$/i.test(filename)) { return "fossa"; }
    if (/\.fossaignore$/i.test(filename)) { return "fossa"; }
    if (/\.fountain$/i.test(filename)) { return "fountain"; }
    if (/\.fi?dl$/i.test(filename)) { return "franca"; }
    if (/\.fdepl$/i.test(filename)) { return "franca"; }
    if (/\.ftl$/i.test(filename)) { return "freemarker"; }
    if (/ftl$/i.test(filename)) { return "freemarker"; }
    if (/\.fr$/i.test(filename)) { return "frege"; }
    if (/\.fs[xi]?$/i.test(filename)) { return "fsharp"; }
    if (/f#$/i.test(filename)) { return "fsharp"; }
    if (/^fuelux(\.min)?\.(css|js)$/i.test(filename)) { return "fuelux"; }
    if (/^fuse\.js$/.test(filename)) { return "fusebox"; }
    if (/\.gspec$/i.test(filename)) { return "galen"; }
    if (/\.gtest$/i.test(filename)) { return "galen"; }
    if (/\.gml$/i.test(filename)) { return "gml"; }
    if (/\.gms$/i.test(filename)) { return "gams"; }
    if (/\.gap$/i.test(filename)) { return "gap"; }
    if (/\.gi$/i.test(filename)) { return "gap"; }
    if (/\.tst$/i.test(filename)) { return "gap"; }
    if (/^gatsby-.+\.[jt]s$/i.test(filename)) { return "gatsby"; }
    if (/\.gdb$/i.test(filename)) { return "gdb"; }
    if (/gdbinit$/i.test(filename)) { return "gdb"; }
    if (/\.gd$/i.test(filename)) { return "godot"; }
    if (/^\.htaccess$/i.test(filename)) { return "gear"; }
    if (/^\.htpasswd$/i.test(filename)) { return "gear"; }
    if (/^\.env\./i.test(filename)) { return "gear"; }
    if (/^\.lesshintrc$/i.test(filename)) { return "gear"; }
    if (/^\.csscomb\.json$/i.test(filename)) { return "gear"; }
    if (/^text\.enc$/.test(filename)) { return "gear"; }
    if (/\.csslintrc$/i.test(filename)) { return "gear"; }
    if (/\.jsbeautifyrc$/i.test(filename)) { return "gear"; }
    if (/\.jshintrc$/i.test(filename)) { return "gear"; }
    if (/\.htmlhintrc$/i.test(filename)) { return "gear"; }
    if (/\.coffeelintignore$/i.test(filename)) { return "gear"; }
    if (/\.jscsrc$/i.test(filename)) { return "gear"; }
    if (/\.module$/i.test(filename)) { return "gear"; }
    if (/\.codoopts$/i.test(filename)) { return "gear"; }
    if (/\.yardopts$/i.test(filename)) { return "gear"; }
    if (/\.arcconfig$/i.test(filename)) { return "gear"; }
    if (/\.pairs$/i.test(filename)) { return "gear"; }
    if (/\.python-version$/i.test(filename)) { return "gear"; }
    if (/\.lintstagedrc$/i.test(filename)) { return "gear"; }
    if (/\.indent\.pro$/i.test(filename)) { return "gear"; }
    if (/^\./.test(filename)) { return "gear"; }
    if (/\.dll$/i.test(filename)) { return "gears"; }
    if (/\.xml$/i.test(filename)) { return "code"; }
    if (/\.rdf$/i.test(filename)) { return "code"; }
    if (/\.config$/i.test(filename)) { return "code"; }
    if (/^_service$/.test(filename)) { return "code"; }
    if (/^configure\.ac$/.test(filename)) { return "code"; }
    if (/^Settings\.StyleCop$/.test(filename)) { return "code"; }
    if (/\.4th$/i.test(filename)) { return "code"; }
    if (/\.adm[lx]$/i.test(filename)) { return "code"; }
    if (/\.abnf$/i.test(filename)) { return "code"; }
    if (/\.aepx$/i.test(filename)) { return "code"; }
    if (/\.agda$/i.test(filename)) { return "code"; }
    if (/\.appxmanifest$/i.test(filename)) { return "code"; }
    if (/\.ash$/i.test(filename)) { return "code"; }
    if (/\.asn1?$/i.test(filename)) { return "code"; }
    if (/\.axml$/i.test(filename)) { return "code"; }
    if (/\.bc$/i.test(filename)) { return "code"; }
    if (/\.befunge$/i.test(filename)) { return "code"; }
    if (/\.bmx$/i.test(filename)) { return "code"; }
    if (/\.bnf$/i.test(filename)) { return "code"; }
    if (/\.brs$/i.test(filename)) { return "code"; }
    if (/\.capnp$/i.test(filename)) { return "code"; }
    if (/\.ccxml$/i.test(filename)) { return "code"; }
    if (/\.cscfg$/i.test(filename)) { return "code"; }
    if (/\.cgi$/i.test(filename)) { return "code"; }
    if (/\.ch$/i.test(filename)) { return "code"; }
    if (/\.clixml$/i.test(filename)) { return "code"; }
    if (/\.cocci$/i.test(filename)) { return "code"; }
    if (/\.ct$/i.test(filename)) { return "code"; }
    if (/\.cw$/i.test(filename)) { return "code"; }
    if (/\.cy$/i.test(filename)) { return "code"; }
    if (/\.rdg$/i.test(filename)) { return "code"; }
    if (/\.dita$/i.test(filename)) { return "code"; }
    if (/\.ditamap$/i.test(filename)) { return "code"; }
    if (/\.ditaval$/i.test(filename)) { return "code"; }
    if (/\.dotsettings$/i.test(filename)) { return "code"; }
    if (/\.dtd$/i.test(filename)) { return "code"; }
    if (/\.dyl$/i.test(filename)) { return "code"; }
    if (/\.dylan$/i.test(filename)) { return "code"; }
    if (/\.ebnf$/i.test(filename)) { return "code"; }
    if (/\.ecl$/i.test(filename)) { return "code"; }
    if (/\.eclxml$/i.test(filename)) { return "code"; }
    if (/\.fcgi$/i.test(filename)) { return "code"; }
    if (/\.fidl$/i.test(filename)) { return "code"; }
    if (/\.filters$/i.test(filename)) { return "code"; }
    if (/\.flex$/i.test(filename)) { return "code"; }
    if (/\.fo$/i.test(filename)) { return "code"; }
    if (/\.forth$/i.test(filename)) { return "code"; }
    if (/\.frt$/i.test(filename)) { return "code"; }
    if (/\.fsproj$/i.test(filename)) { return "code"; }
    if (/\.fth$/i.test(filename)) { return "code"; }
    if (/\.fun$/i.test(filename)) { return "code"; }
    if (/\.fxml$/i.test(filename)) { return "code"; }
    if (/\.grace$/i.test(filename)) { return "code"; }
    if (/\.grxml$/i.test(filename)) { return "code"; }
    if (/\.iml$/i.test(filename)) { return "code"; }
    if (/\.intr$/i.test(filename)) { return "code"; }
    if (/\.ivy$/i.test(filename)) { return "code"; }
    if (/\.jelly$/i.test(filename)) { return "code"; }
    if (/\.jflex$/i.test(filename)) { return "code"; }
    if (/\.jsproj$/i.test(filename)) { return "code"; }
    if (/\.lagda$/i.test(filename)) { return "code"; }
    if (/\.launch$/i.test(filename)) { return "code"; }
    if (/\.lex$/i.test(filename)) { return "code"; }
    if (/\.lid$/i.test(filename)) { return "code"; }
    if (/\.lp$/i.test(filename)) { return "code"; }
    if (/\.m4$/i.test(filename)) { return "code"; }
    if (/\.manifest$/i.test(filename)) { return "code"; }
    if (/\.mask$/i.test(filename)) { return "code"; }
    if (/\.mdpolicy$/i.test(filename)) { return "code"; }
    if (/\.menu$/i.test(filename)) { return "code"; }
    if (/\.ML$/.test(filename)) { return "code"; }
    if (/\.mq[45h]$/i.test(filename)) { return "code"; }
    if (/\.mtml$/i.test(filename)) { return "code"; }
    if (/\.muf$/i.test(filename)) { return "code"; }
    if (/\.mumps$/i.test(filename)) { return "code"; }
    if (/\.mxml$/i.test(filename)) { return "code"; }
    if (/\.myt$/i.test(filename)) { return "code"; }
    if (/\.natvis$/i.test(filename)) { return "code"; }
    if (/\.odd$/i.test(filename)) { return "code"; }
    if (/\.ohm$/i.test(filename)) { return "code"; }
    if (/\.omgrofl$/i.test(filename)) { return "code"; }
    if (/\.osm$/i.test(filename)) { return "code"; }
    if (/\.pig$/i.test(filename)) { return "code"; }
    if (/\.plist$/i.test(filename)) { return "code"; }
    if (/\.prg$/i.test(filename)) { return "code"; }
    if (/\.prw$/i.test(filename)) { return "code"; }
    if (/\.proj$/i.test(filename)) { return "code"; }
    if (/\.props$/i.test(filename)) { return "code"; }
    if (/\.psc1$/i.test(filename)) { return "code"; }
    if (/\.pt$/i.test(filename)) { return "code"; }
    if (/\.resx$/i.test(filename)) { return "code"; }
    if (/\.rl$/i.test(filename)) { return "code"; }
    if (/\.scxml$/i.test(filename)) { return "code"; }
    if (/\.sed$/i.test(filename)) { return "code"; }
    if (/\.sgml?$/i.test(filename)) { return "code"; }
    if (/\.sig$/i.test(filename)) { return "code"; }
    if (/\.sk$/i.test(filename)) { return "code"; }
    if (/\.sk[12]$/i.test(filename)) { return "code"; }
    if (/\.sml$/i.test(filename)) { return "code"; }
    if (/\.smt$/i.test(filename)) { return "code"; }
    if (/\.smt2$/i.test(filename)) { return "code"; }
    if (/\.spthy$/i.test(filename)) { return "code"; }
    if (/\.srdf$/i.test(filename)) { return "code"; }
    if (/\.st$/i.test(filename)) { return "code"; }
    if (/\.stellaris$/i.test(filename)) { return "code"; }
    if (/\.storyboard$/i.test(filename)) { return "code"; }
    if (/\.targets$/i.test(filename)) { return "code"; }
    if (/\.tera$/i.test(filename)) { return "code"; }
    if (/\.tml$/i.test(filename)) { return "code"; }
    if (/\.ui$/i.test(filename)) { return "code"; }
    if (/\.urdf$/i.test(filename)) { return "code"; }
    if (/\.ux$/i.test(filename)) { return "code"; }
    if (/\.vxml$/i.test(filename)) { return "code"; }
    if (/\.webidl$/i.test(filename)) { return "code"; }
    if (/\.wisp$/i.test(filename)) { return "code"; }
    if (/\.wlp(4|ppp)$/i.test(filename)) { return "code"; }
    if (/\.wsdl$/i.test(filename)) { return "code"; }
    if (/\.wsf$/i.test(filename)) { return "code"; }
    if (/\.x3d$/i.test(filename)) { return "code"; }
    if (/\.xacro$/i.test(filename)) { return "code"; }
    if (/\.xaml$/i.test(filename)) { return "code"; }
    if (/\.xib$/i.test(filename)) { return "code"; }
    if (/\.xlf$/i.test(filename)) { return "code"; }
    if (/\.xliff$/i.test(filename)) { return "code"; }
    if (/\.xmi$/i.test(filename)) { return "code"; }
    if (/\.xproj$/i.test(filename)) { return "code"; }
    if (/\.xsd$/i.test(filename)) { return "code"; }
    if (/\.xsl$/i.test(filename)) { return "code"; }
    if (/\.xslt$/i.test(filename)) { return "code"; }
    if (/\.xul$/i.test(filename)) { return "code"; }
    if (/\.y$/i.test(filename)) { return "code"; }
    if (/\.yacc$/i.test(filename)) { return "code"; }
    if (/\.yy$/i.test(filename)) { return "code"; }
    if (/\.zcml$/i.test(filename)) { return "code"; }
    if (/\.kid$/i.test(filename)) { return "genshi"; }
    if (/^xml\+(genshi|kid)$/i.test(filename)) { return "genshi"; }
    if (/\.ebuild$/i.test(filename)) { return "gentoo"; }
    if (/\.eclass$/i.test(filename)) { return "gentoo"; }
    if (/\.xcf$/i.test(filename)) { return "gimp"; }
    if (/\.ggr$/i.test(filename)) { return "gimp"; }
    if (/\.gih$/i.test(filename)) { return "gimp"; }
    if (/\.gpl$/i.test(filename)) { return "gimp"; }
    if (/\.vbr$/i.test(filename)) { return "gimp"; }
    if (/^\.git|^\.keep$|\.mailmap$/i.test(filename)) { return "git"; }
    if (/\.git(ignore|config|attributes)$/i.test(filename)) { return "git"; }
    if (/^(ATOM_)?COMMIT_EDITMSG$/.test(filename)) { return "git-commit"; }
    if (/^MERGE_(HEAD|MODE|MSG)$/.test(filename)) { return "git-merge"; }
    if (/^\.gitlab-ci\.yml$/.test(filename)) { return "gitlab"; }
    if (/\.glade$/i.test(filename)) { return "glade"; }
    if (/^glide\.ya?ml$/i.test(filename)) { return "glide"; }
    if (/\.gltf$/i.test(filename)) { return "gltf"; }
    if (/\.glf$/i.test(filename)) { return "pointwise"; }
    if (/\.glyphs$/i.test(filename)) { return "glyphs"; }
    if (/\.gn$/i.test(filename)) { return "gn"; }
    if (/\.gni$/i.test(filename)) { return "gn"; }
    if (/\.(gnu|gplv[23])$/i.test(filename)) { return "gnu"; }
    if (/\.vala$/i.test(filename)) { return "gnome"; }
    if (/\.vapi$/i.test(filename)) { return "gnome"; }
    if (/\.gtk/.test(filename)) { return "gnome"; }
    if (/\.(gp|plo?t|gnuplot)$/i.test(filename)) { return "graph"; }
    if (/\.go$/i.test(filename)) { return "go"; }
    if (/\.golo$/i.test(filename)) { return "golo"; }
    if (/\.gs$/i.test(filename)) { return "gosu"; }
    if (/\.gst$/i.test(filename)) { return "gosu"; }
    if (/\.gsx$/i.test(filename)) { return "gosu"; }
    if (/\.vark$/i.test(filename)) { return "gosu"; }
    if (/\.gradle$/i.test(filename)) { return "gradle"; }
    if (/gradlew$/i.test(filename)) { return "gradle"; }
    if (/\.gf$/i.test(filename)) { return "gf"; }
    if (/\.graphql$/i.test(filename)) { return "graphql"; }
    if (/\.graphqls$/i.test(filename)) { return "graphql"; }
    if (/\.gql$/i.test(filename)) { return "graphql"; }
    if (/\.gv$/i.test(filename)) { return "graphviz"; }
    if (/\.dot$/i.test(filename)) { return "graphviz"; }
    if (/\.(plantuml|[ip]uml|pu)$/i.test(filename)) { return "graphviz"; }
    if (/\.gvdesign$/i.test(filename)) { return "gvdesign"; }
    if (/^greenkeeper\.json$/i.test(filename)) { return "greenkeeper"; }
    if (/\bgridsome\.config\.[jt]s$/i.test(filename)) { return "gridsome"; }
    if (/\.(groovy|grt|gtpl|gsp|gvy)$/i.test(filename)) { return "groovy"; }
    if (/gsp$/i.test(filename)) { return "groovy"; }
    if (/gruntfile\.js$/i.test(filename)) { return "grunt"; }
    if (/gruntfile\.coffee$/i.test(filename)) { return "grunt"; }
    if (/gulpfile\.js$/i.test(filename)) { return "gulp"; }
    if (/gulpfile\.coffee$/i.test(filename)) { return "gulp"; }
    if (/gulpfile\.babel\.js$/i.test(filename)) { return "gulp"; }
    if (/\.hh$/i.test(filename)) { return "hack"; }
    if (/\.hhi$/i.test(filename)) { return "hack"; }
    if (/\.hack$/i.test(filename)) { return "hack"; }
    if (/\.haml$/i.test(filename)) { return "haml"; }
    if (/\.hamlc$/i.test(filename)) { return "haml"; }
    if (/\.haml\.deface$/i.test(filename)) { return "haml"; }
    if (/\.hb$/i.test(filename)) { return "harbour"; }
    if (/\.hcl$/i.test(filename)) { return "hashicorp"; }
    if (/\.workflow$/i.test(filename)) { return "hashicorp"; }
    if (/\.hs$/i.test(filename)) { return "haskell"; }
    if (/\.hsc$/i.test(filename)) { return "haskell"; }
    if (/\.c2hs$/i.test(filename)) { return "haskell"; }
    if (/\.lhs$/i.test(filename)) { return "haskell"; }
    if (/\.hx([sm]l|)?$/.test(filename)) { return "haxe"; }
    if (/\.hxproj$/i.test(filename)) { return "haxedevelop"; }
    if (/^\.p4ignore$/i.test(filename)) { return "helix"; }
    if (/^(Proc|Apt)file$/.test(filename)) { return "heroku"; }
    if (/\.buildpacks$/i.test(filename)) { return "heroku"; }
    if (/\.slugignore$/i.test(filename)) { return "heroku"; }
    if (/^\.vendor_urls$/.test(filename)) { return "heroku"; }
    if (/\.hpgl$/i.test(filename)) { return "hp"; }
    if (/\.hjson$/i.test(filename)) { return "hjson"; }
    if (/\.hc$/i.test(filename)) { return "templeos"; }
    if (/\.hc\.z$/i.test(filename)) { return "templeos"; }
    if (/\.hl$/i.test(filename)) { return "hoplon"; }
    if (/\.hound\.ya?ml$/i.test(filename)) { return "houndci"; }
    if (/\.x?html?$/i.test(filename)) { return "html5"; }
    if (/\.cshtml$/i.test(filename)) { return "html5"; }
    if (/\.gohtml$/i.test(filename)) { return "html5"; }
    if (/\.html\.eex$/i.test(filename)) { return "html5"; }
    if (/\.jsp$/i.test(filename)) { return "html5"; }
    if (/\.kit$/i.test(filename)) { return "html5"; }
    if (/\.isml$/i.test(filename)) { return "html5"; }
    if (/\.latte$/i.test(filename)) { return "html5"; }
    if (/\.phtml$/i.test(filename)) { return "html5"; }
    if (/\.shtml$/i.test(filename)) { return "html5"; }
    if (/\.scaml$/i.test(filename)) { return "html5"; }
    if (/\.swig$/i.test(filename)) { return "html5"; }
    if (/\.vash$/i.test(filename)) { return "html5"; }
    if (/\.xht$/i.test(filename)) { return "html5"; }
    if (/\.dtml$/i.test(filename)) { return "html5"; }
    if (/\.mht(ml)?$/i.test(filename)) { return "html5"; }
    if (/\.html?\.ecr$/i.test(filename)) { return "html5"; }
    if (/\.(html?\.erb(\.deface)?|rhtml)$/i.test(filename)) { return "html5"; }
    if (/\.huskyrc$/i.test(filename)) { return "husky"; }
    if (/\.huskyrc\.js$/i.test(filename)) { return "husky"; }
    if (/\.huskyrc\.json$/i.test(filename)) { return "husky"; }
    if (/\.hy$/i.test(filename)) { return "hy"; }
    if (/hylang$/i.test(filename)) { return "hy"; }
    if (/\.dlm$/i.test(filename)) { return "idl"; }
    if (/^icomoon(\.[-\w]+)*\.json$/i.test(filename)) { return "icomoon"; }
    if (/\.idr$/i.test(filename)) { return "idris"; }
    if (/\.lidr$/i.test(filename)) { return "idris"; }
    if (/\.ipf$/i.test(filename)) { return "igorpro"; }
    if (/igor$/i.test(filename)) { return "igorpro"; }
    if (/\.a?png$/i.test(filename)) { return "image"; }
    if (/\.gif$/i.test(filename)) { return "image"; }
    if (/\.jpe?g$/i.test(filename)) { return "image"; }
    if (/\.ico$/i.test(filename)) { return "image"; }
    if (/\.webp$/i.test(filename)) { return "image"; }
    if (/\.bmp$/i.test(filename)) { return "image"; }
    if (/\.bpg$/i.test(filename)) { return "image"; }
    if (/\.cin$/i.test(filename)) { return "image"; }
    if (/\.cd5$/i.test(filename)) { return "image"; }
    if (/\.cgm$/i.test(filename)) { return "image"; }
    if (/\.cpc$/i.test(filename)) { return "image"; }
    if (/\.cr2$/i.test(filename)) { return "image"; }
    if (/\.dcm$/i.test(filename)) { return "image"; }
    if (/\.dds$/i.test(filename)) { return "image"; }
    if (/\.djvu?$/i.test(filename)) { return "image"; }
    if (/\.dpx$/i.test(filename)) { return "image"; }
    if (/\.ecw$/i.test(filename)) { return "image"; }
    if (/\.exr$/i.test(filename)) { return "image"; }
    if (/\.fig$/i.test(filename)) { return "image"; }
    if (/\.fits?$/i.test(filename)) { return "image"; }
    if (/\.flif$/i.test(filename)) { return "image"; }
    if (/\.fts$/i.test(filename)) { return "image"; }
    if (/\.hdp$/i.test(filename)) { return "image"; }
    if (/\.hdr$/i.test(filename)) { return "image"; }
    if (/\.heic$/i.test(filename)) { return "image"; }
    if (/\.heif$/i.test(filename)) { return "image"; }
    if (/\.icns$/i.test(filename)) { return "image"; }
    if (/\.iff$/i.test(filename)) { return "image"; }
    if (/\.(jp[f2xm]|j2c|mj2)$/i.test(filename)) { return "image"; }
    if (/\.jps$/i.test(filename)) { return "image"; }
    if (/\.jxr$/i.test(filename)) { return "image"; }
    if (/\.lbm$/i.test(filename)) { return "image"; }
    if (/\.liff$/i.test(filename)) { return "image"; }
    if (/\.mpo$/i.test(filename)) { return "image"; }
    if (/\.mng$/i.test(filename)) { return "image"; }
    if (/\.nrrd$/i.test(filename)) { return "image"; }
    if (/\.ora$/i.test(filename)) { return "image"; }
    if (/\.pcx$/i.test(filename)) { return "image"; }
    if (/\.pict$/i.test(filename)) { return "image"; }
    if (/\.pxr$/i.test(filename)) { return "image"; }
    if (/\.raw$/i.test(filename)) { return "image"; }
    if (/\.sct$/i.test(filename)) { return "image"; }
    if (/\.sgi$/i.test(filename)) { return "image"; }
    if (/\.svgz$/i.test(filename)) { return "image"; }
    if (/\.tga$/i.test(filename)) { return "image"; }
    if (/\.tiff?$/i.test(filename)) { return "image"; }
    if (/\.vsdx?$/i.test(filename)) { return "image"; }
    if (/\.wbm$/i.test(filename)) { return "image"; }
    if (/\.(wmf|emf|wmz|apm)$/i.test(filename)) { return "image"; }
    if (/\.wdp$/i.test(filename)) { return "image"; }
    if (/\.xwd$/i.test(filename)) { return "image"; }
    if (/\.pxm$/i.test(filename)) { return "image"; }
    if (/\.pxb$/i.test(filename)) { return "image"; }
    if (/\.pxg$/i.test(filename)) { return "image"; }
    if (/\.pxls$/i.test(filename)) { return "image"; }
    if (/\.pxs$/i.test(filename)) { return "image"; }
    if (/\.imba$/i.test(filename)) { return "imba"; }
    if (/\.ni$/i.test(filename)) { return "inform7"; }
    if (/\.i7x$/i.test(filename)) { return "inform7"; }
    if (/\.ink$/i.test(filename)) { return "ink"; }
    if (/\.ink2$/i.test(filename)) { return "ink"; }
    if (/\.inx$/i.test(filename)) { return "inkscape"; }
    if (/\.iss$/i.test(filename)) { return "inno"; }
    if (/\.io$/i.test(filename)) { return "io"; }
    if (/\.ik$/i.test(filename)) { return "ioke"; }
    if (/^ionic\.(project|config\.json)$/.test(filename)) { return "ionic"; }
    if (/\.thy$/i.test(filename)) { return "isabelle"; }
    if (/^ROOT$/.test(filename)) { return "isabelle"; }
    if (/^\.nycrc(\.json)?$/i.test(filename)) { return "istanbul"; }
    if (/\.ijs$/i.test(filename)) { return "j"; }
    if (/\.jade$/i.test(filename)) { return "jade"; }
    if (/^Jakefile$/.test(filename)) { return "jake"; }
    if (/\.jake$/i.test(filename)) { return "jake"; }
    if (/^\.?jasmine\.json$|^jasmine\.([-\w]+\.)?(js|ts|coffee)$/i.test(filename)) { return "jasmine"; }
    if (/\.java$/i.test(filename)) { return "java"; }
    if (/\.js$/i.test(filename)) { return "js"; }
    if (/\._js$/i.test(filename)) { return "js"; }
    if (/\.jsb$/i.test(filename)) { return "js"; }
    if (/\.jsm$/i.test(filename)) { return "js"; }
    if (/\.jss$/i.test(filename)) { return "js"; }
    if (/\.es\d?$/i.test(filename)) { return "js"; }
    if (/\.cjs$/i.test(filename)) { return "js"; }
    if (/\.mjs$/i.test(filename)) { return "js"; }
    if (/\.sjs$/i.test(filename)) { return "js"; }
    if (/\.ssjs$/i.test(filename)) { return "js"; }
    if (/\.jspre$/i.test(filename)) { return "js"; }
    if (/\.jscript$/i.test(filename)) { return "js"; }
    if (/\.jse$/i.test(filename)) { return "js"; }
    if (/\.jslib$/i.test(filename)) { return "js"; }
    if (/\.xsjs$/i.test(filename)) { return "js"; }
    if (/\.xsjslib$/i.test(filename)) { return "js"; }
    if (/\.dust$/i.test(filename)) { return "js"; }
    if (/\.htc$/i.test(filename)) { return "js"; }
    if (/\.snap$/i.test(filename)) { return "js"; }
    if (/\.pac$/i.test(filename)) { return "js"; }
    if (/\.pjs$/i.test(filename)) { return "js"; }
    if (/\.js\.ecr$/i.test(filename)) { return "js"; }
    if (/\.js\.erb$/i.test(filename)) { return "js"; }
    if (/^_config\.yml$/.test(filename)) { return "jekyll"; }
    if (/\.nojekyll$/i.test(filename)) { return "jekyll"; }
    if (/^Jenkinsfile$/.test(filename)) { return "jenkins"; }
    if (/^jest(\.config)?\.js(on)?$/i.test(filename)) { return "jest"; }
    if (/\.jsx?\.snap$/i.test(filename)) { return "jest"; }
    if (/\.jinja$/i.test(filename)) { return "jinja"; }
    if (/\.j(inja)?2$/i.test(filename)) { return "jinja"; }
    if (/\.jison$/i.test(filename)) { return "jison"; }
    if (/\.jisonlex$/i.test(filename)) { return "jison"; }
    if (/\.ol$/i.test(filename)) { return "jolie"; }
    if (/\.iol$/i.test(filename)) { return "jolie"; }
    if (/^jquery([-.](min|latest|slim|\d\.\d+(\.\d+)?))*\.([jt]sx?|es6?|coffee|map)$/i.test(filename)) { return "jquery"; }
    if (/^jquery([-_.](ui[-_.](custom|dialog-?\w*)|effects)(\.[^.]*)?|[-.]?ui(-\d\.\d+(\.\d+)?)?(\.\w+)?)([-_.]?min|dev)?\.([jt]sx?|es6?|coffee|map|s?css|less|styl)$/i.test(filename)) { return "jqueryui"; }
    if (/\.(h|geo|topo)?json$/i.test(filename)) { return "json"; }
    if (/\.json5$/i.test(filename)) { return "json5"; }
    if (/\.jsonld$/i.test(filename)) { return "jsonld"; }
    if (/\.jq$/i.test(filename)) { return "sql"; }
    if (/\.jsx$/i.test(filename)) { return "jsx"; }
    if (/\.jl$/i.test(filename)) { return "julia"; }
    if (/\.jos$/i.test(filename)) { return "junos"; }
    if (/\.slax$/i.test(filename)) { return "junos"; }
    if (/\.ipynb$/i.test(filename)) { return "jupyter"; }
    if (/^Notebook$/.test(filename)) { return "jupyter"; }
    if (/^karma\.conf(ig)?\.js$/i.test(filename)) { return "karma"; }
    if (/^karma\.conf(ig)?\.coffee$/i.test(filename)) { return "karma"; }
    if (/^karma\.conf(ig)?\.ts$/i.test(filename)) { return "karma"; }
    if (/\.ks$/i.test(filename)) { return "kos"; }
    if (/^keybase\.txt$/i.test(filename)) { return "keybase"; }
    if (/\.keynote$/i.test(filename)) { return "keynote"; }
    if (/\.knt$/i.test(filename)) { return "keynote"; }
    if (/\.kicad_pcb$/i.test(filename)) { return "kicad"; }
    if (/\.kicad_pcb-bak$/i.test(filename)) { return "kicad"; }
    if (/\.kicad_mod$/i.test(filename)) { return "kicad"; }
    if (/\.kicad_wks$/i.test(filename)) { return "kicad"; }
    if (/^fp-lib-table$/i.test(filename)) { return "kicad"; }
    if (/^\.?kitchen(\.[-\w]*)*\.ya?ml$/i.test(filename)) { return "kitchenci"; }
    if (/\.kv$/i.test(filename)) { return "kivy"; }
    if (/\.kml$/i.test(filename)) { return "earth"; }
    if (/^knockout[-.](\d+\.){3}(debug\.)?js$/i.test(filename)) { return "knockout"; }
    if (/\.kt$/i.test(filename)) { return "kotlin"; }
    if (/\.ktm$/i.test(filename)) { return "kotlin"; }
    if (/\.kts$/i.test(filename)) { return "kotlin"; }
    if (/\.krl$/i.test(filename)) { return "krl"; }
    if (/^kubernetes.*\.ya?ml$/i.test(filename)) { return "kubernetes"; }
    if (/(^|\.)kazelcfg\.json$/i.test(filename)) { return "kubernetes"; }
    if (/\.lvproj$/i.test(filename)) { return "labview"; }
    if (/\.blade(\.php)?$/i.test(filename)) { return "laravel"; }
    if (/\.lasso$/i.test(filename)) { return "lasso"; }
    if (/\.las$/i.test(filename)) { return "lasso"; }
    if (/\.lasso8$/i.test(filename)) { return "lasso"; }
    if (/\.lasso9$/i.test(filename)) { return "lasso"; }
    if (/\.ldml$/i.test(filename)) { return "lasso"; }
    if (/^leaflet\.(draw-src|draw|spin|coordinates-(\d+\.)\d+\.\d+\.src)\.(js|css)$|^wicket-leaflet\.js$/i.test(filename)) { return "leaflet"; }
    if (/\.lean$/i.test(filename)) { return "lean"; }
    if (/\.hlean$/i.test(filename)) { return "lean"; }
    if (/\.lr$/i.test(filename)) { return "lektor"; }
    if (/\.lektorproject$/i.test(filename)) { return "lektor"; }
    if (/^lerna\.json$/i.test(filename)) { return "lerna"; }
    if (/project\.clj$/i.test(filename)) { return "lein"; }
    if (/\.lfe$/i.test(filename)) { return "lfe"; }
    if (/\.lwo$/i.test(filename)) { return "lightwave"; }
    if (/\.lws$/i.test(filename)) { return "lightwave"; }
    if (/\.hxp$/i.test(filename)) { return "lime"; }
    if (/\.url$/i.test(filename)) { return "link"; }
    if (/\.lnk$/i.test(filename)) { return "link"; }
    if (/\.alias$/.test(filename)) { return "link"; }
    if (/\.lsp$/i.test(filename)) { return "lisp"; }
    if (/\.lisp$/i.test(filename)) { return "lisp"; }
    if (/\.l$/i.test(filename)) { return "lisp"; }
    if (/\.nl$/i.test(filename)) { return "lisp"; }
    if (/\.ny$/i.test(filename)) { return "lisp"; }
    if (/\.podsl$/i.test(filename)) { return "lisp"; }
    if (/\.sexp$/i.test(filename)) { return "lisp"; }
    if (/\.sbclrc$/i.test(filename)) { return "lisp"; }
    if (/\.ls$/i.test(filename)) { return "ls"; }
    if (/\._ls$/i.test(filename)) { return "ls"; }
    if (/^Slakefile$/.test(filename)) { return "ls"; }
    if (/\.ll$/i.test(filename)) { return "llvm"; }
    if (/\.clang-(format|tidy)$/i.test(filename)) { return "llvm"; }
    if (/^ubsan\.blacklist$/i.test(filename)) { return "llvm"; }
    if (/\.xm$/i.test(filename)) { return "mobile"; }
    if (/\.xi$/i.test(filename)) { return "mobile"; }
    if (/\.(logtalk|lgt)$/i.test(filename)) { return "logtalk"; }
    if (/\.lol$/i.test(filename)) { return "lolcode"; }
    if (/\.(lookml|lkml)$/i.test(filename)) { return "lookml"; }
    if (/\.lsl$/i.test(filename)) { return "lsl"; }
    if (/\.lslp$/i.test(filename)) { return "lsl"; }
    if (/\.lua$/i.test(filename)) { return "lua"; }
    if (/\.pd_lua$/i.test(filename)) { return "lua"; }
    if (/\.rbxs$/i.test(filename)) { return "lua"; }
    if (/\.wlua$/i.test(filename)) { return "lua"; }
    if (/^Makefile/.test(filename)) { return "checklist"; }
    if (/^mk\.config$/.test(filename)) { return "checklist"; }
    if (/\.(mk|mak|make)$/i.test(filename)) { return "checklist"; }
    if (/^BSDmakefile$/i.test(filename)) { return "checklist"; }
    if (/^GNUmakefile$/i.test(filename)) { return "checklist"; }
    if (/^makefile\.sco$/i.test(filename)) { return "checklist"; }
    if (/^Kbuild$/.test(filename)) { return "checklist"; }
    if (/^makefile$/.test(filename)) { return "checklist"; }
    if (/^mkfile$/i.test(filename)) { return "checklist"; }
    if (/^\.?qmake$/i.test(filename)) { return "checklist"; }
    if (/\.am$/i.test(filename)) { return "checklist"; }
    if (/\.bb$/i.test(filename)) { return "checklist"; }
    if (/^DEPS$/.test(filename)) { return "checklist"; }
    if (/\.mms$/i.test(filename)) { return "checklist"; }
    if (/\.mmk$/i.test(filename)) { return "checklist"; }
    if (/\.pri$/i.test(filename)) { return "checklist"; }
    if (/\.mak?o$/i.test(filename)) { return "mako"; }
    if (/\.(1([bcmstx]|has|in)?|[24568]|3(avl|bsm|cfgadm|in|[cmx]|perl|pm?|qt)?|7(d|fs|i|ipp|m|p)?|9[efps]?|chem|eqn|groff|man|mandoc|mdoc|me|mom|nr?|nroff|pic|roff?|tmac|tmac-u|tr|troff)$/i.test(filename)) { return "manpage"; }
    if (/\.(rnh|rno|run|runoff)$/i.test(filename)) { return "manpage"; }
    if (/(^|\.)((troff|eqn)rc(-end)?)$/i.test(filename)) { return "manpage"; }
    if (/^tmac\.|^(mmn|mmt|toc\.entries)$/i.test(filename)) { return "manpage"; }
    if (/(\\|\/)(?:man(\w+)\1[^\\\/]+\.\2|(?:tmac|eqnchar)\.d\1(?:ms\.)?[^\\\/.]+(?:\.in)?|picasso\1(?:defs\.\w+|disclaimer))$/.test(filename)) { return "manpage"; }
    if (/\.css\.map$/i.test(filename)) { return "sourcemap"; }
    if (/\.js\.map$/i.test(filename)) { return "sourcemap"; }
    if (/\.cidmap$/i.test(filename)) { return "sourcemap"; }
    if (/\.map$/i.test(filename)) { return "sourcemap"; }
    if (/\.mss$/i.test(filename)) { return "mapbox"; }
    if (/^Carto(CSS)?$/i.test(filename)) { return "mapbox"; }
    if (/\.(md|mdown|markdown|mkd|mkdown|mdwn|mkdn|rmd|ron|pmd)$/i.test(filename)) { return "markdown"; }
    if (/^(CommonMark|GFM|Pandoc)$|\bMarkdown\b/i.test(filename)) { return "markdown"; }
    if (/^\.markdownlint/i.test(filename)) { return "markdownlint"; }
    if (/^\.?mdlrc(\.style)?\.rb$/i.test(filename)) { return "markdownlint"; }
    if (/^\.?mdlrc$/i.test(filename)) { return "markdownlint"; }
    if (/\.marko$/i.test(filename)) { return "marko"; }
    if (/\.marko\.js$/i.test(filename)) { return "marko"; }
    if (/^materialize(\.min)?\.(js|css)$/i.test(filename)) { return "materialize"; }
    if (/\.mathematica$/i.test(filename)) { return "mathematica"; }
    if (/\.cdf$/i.test(filename)) { return "mathematica"; }
    if (/\.ma$/i.test(filename)) { return "mathematica"; }
    if (/\.mt$/i.test(filename)) { return "mathematica"; }
    if (/\.nb$/i.test(filename)) { return "mathematica"; }
    if (/\.nbp$/i.test(filename)) { return "mathematica"; }
    if (/\.wl$/i.test(filename)) { return "mathematica"; }
    if (/\.wlt$/i.test(filename)) { return "mathematica"; }
    if (/^MathJax[^.]*\.js$/i.test(filename)) { return "mathjax"; }
    if (/\.matlab$/i.test(filename)) { return "matlab"; }
    if (/\.maxpat$/i.test(filename)) { return "max"; }
    if (/\.maxhelp$/i.test(filename)) { return "max"; }
    if (/\.maxproj$/i.test(filename)) { return "max"; }
    if (/\.mxt$/i.test(filename)) { return "max"; }
    if (/\.pat$/i.test(filename)) { return "max"; }
    if (/\.ms$/i.test(filename)) { return "maxscript"; }
    if (/\.mcr$/i.test(filename)) { return "maxscript"; }
    if (/\.mce$/i.test(filename)) { return "maxscript"; }
    if (/\.max$/i.test(filename)) { return "maxscript"; }
    if (/\.3ds$/i.test(filename)) { return "maxscript"; }
    if (/\.mb$/i.test(filename)) { return "maya"; }
    if (/\.mel$/i.test(filename)) { return "maya"; }
    if (/\.mcf[ip]$/i.test(filename)) { return "maya"; }
    if (/\.mdx$/i.test(filename)) { return "mdx"; }
    if (/\.mediawiki$/i.test(filename)) { return "mediawiki"; }
    if (/\.wiki$/i.test(filename)) { return "mediawiki"; }
    if (/^\.mention-bot$/i.test(filename)) { return "bullhorn"; }
    if (/\.hgignore$/i.test(filename)) { return "hg"; }
    if (/\.?hgrc$/i.test(filename)) { return "hg"; }
    if (/\.hgsub$/i.test(filename)) { return "hg"; }
    if (/\.hgsubstate$/i.test(filename)) { return "hg"; }
    if (/\.moo$/i.test(filename)) { return "mercury"; }
    if (/^(meson\.build|meson_options\.txt)$/i.test(filename)) { return "meson"; }
    if (/\.metal$/i.test(filename)) { return "metal"; }
    if (/\.accda$/i.test(filename)) { return "access"; }
    if (/\.accdb$/i.test(filename)) { return "access"; }
    if (/\.accde$/i.test(filename)) { return "access"; }
    if (/\.accdr$/i.test(filename)) { return "access"; }
    if (/\.accdt$/i.test(filename)) { return "access"; }
    if (/\.adn$/i.test(filename)) { return "access"; }
    if (/\.laccdb$/i.test(filename)) { return "access"; }
    if (/\.mdw$/i.test(filename)) { return "access"; }
    if (/\.xls$/i.test(filename)) { return "excel"; }
    if (/\.xlsx$/i.test(filename)) { return "excel"; }
    if (/\.xlsm$/i.test(filename)) { return "excel"; }
    if (/\.xlsb$/i.test(filename)) { return "excel"; }
    if (/\.xlt$/i.test(filename)) { return "excel"; }
    if (/\.xla$/i.test(filename)) { return "excel"; }
    if (/\.xlam$/i.test(filename)) { return "excel"; }
    if (/\.xltm$/i.test(filename)) { return "excel"; }
    if (/\.xltx$/i.test(filename)) { return "excel"; }
    if (/\.(infopathxml|xsn|xsf|xtp2)$/i.test(filename)) { return "infopath"; }
    if (/\.o?crec$/i.test(filename)) { return "lync"; }
    if (/\.one$/i.test(filename)) { return "onenote"; }
    if (/\.pst$/i.test(filename)) { return "outlook"; }
    if (/\.bcmx$/i.test(filename)) { return "outlook"; }
    if (/\.oab$/i.test(filename)) { return "outlook"; }
    if (/\.otm$/i.test(filename)) { return "outlook"; }
    if (/\.oft$/i.test(filename)) { return "outlook"; }
    if (/\.nk2$/i.test(filename)) { return "outlook"; }
    if (/\.olk14\w*$/i.test(filename)) { return "outlook"; }
    if (/\.pps$/i.test(filename)) { return "powerpoint"; }
    if (/\.ppsx$/i.test(filename)) { return "powerpoint"; }
    if (/\.ppt$/i.test(filename)) { return "powerpoint"; }
    if (/\.pptx$/i.test(filename)) { return "powerpoint"; }
    if (/\.potm$/i.test(filename)) { return "powerpoint"; }
    if (/\.mpp$/i.test(filename)) { return "msproject"; }
    if (/\.mpt$/i.test(filename)) { return "msproject"; }
    if (/\.puz$/i.test(filename)) { return "publisher"; }
    if (/\.doc$/i.test(filename)) { return "word"; }
    if (/\.docx$/i.test(filename)) { return "word"; }
    if (/\.docm$/i.test(filename)) { return "word"; }
    if (/\.docxml$/i.test(filename)) { return "word"; }
    if (/\.dotm$/i.test(filename)) { return "word"; }
    if (/\.dotx$/i.test(filename)) { return "word"; }
    if (/\.wri$/i.test(filename)) { return "word"; }
    if (/\.wll$/i.test(filename)) { return "word"; }
    if (/\.vsdx$/i.test(filename)) { return "visio"; }
    if (/\.vdw$/i.test(filename)) { return "visio"; }
    if (/\.vdx$/i.test(filename)) { return "visio"; }
    if (/\.vsd$/i.test(filename)) { return "visio"; }
    if (/\.vsdm$/i.test(filename)) { return "visio"; }
    if (/\.vsw$/i.test(filename)) { return "visio"; }
    if (/\.vsx$/i.test(filename)) { return "visio"; }
    if (/\.vtx$/i.test(filename)) { return "visio"; }
    if (/\.vrd$/i.test(filename)) { return "visio"; }
    if (/\.vsl$/i.test(filename)) { return "visio"; }
    if (/\.vs[st][mx]?$/i.test(filename)) { return "visio"; }
    if (/^mcmod\.info$/i.test(filename)) { return "minecraft"; }
    if (/\.mcfunction$/i.test(filename)) { return "minecraft"; }
    if (/^pack\.mcmeta$/i.test(filename)) { return "minecraft"; }
    if (/\.png\.mcmeta$/.test(filename)) { return "minecraft"; }
    if (/\.mzn$/i.test(filename)) { return "minizinc"; }
    if (/\.dzn$/i.test(filename)) { return "minizinc"; }
    if (/\.dr?uby$/g.test(filename)) { return "mirah"; }
    if (/\.mir(ah)?$/g.test(filename)) { return "mirah"; }
    if (/\.m$/i.test(filename)) { return "miranda"; }
    if (/\.mjml$/i.test(filename)) { return "mjml"; }
    if (/\.mjmlslim$/i.test(filename)) { return "mjml"; }
    if (/^\.?mkdocs\.ya?ml$/i.test(filename)) { return "book-alt"; }
    if (/\.mocharc\.(json|js|ya?ml)$/i.test(filename)) { return "mocha"; }
    if (/^mocha(\.min)?\.([jt]sx?|es6?|coffee)$/i.test(filename)) { return "mocha"; }
    if (/^mocha(\.min)?\.(s?css|less|styl)$/i.test(filename)) { return "mocha"; }
    if (/mocha\.opts$/i.test(filename)) { return "mocha"; }
    if (/\.obj$/i.test(filename)) { return "model"; }
    if (/\.mtl$/i.test(filename)) { return "model"; }
    if (/\.shader$/i.test(filename)) { return "model"; }
    if (/\.geo(m|metry)?$/i.test(filename)) { return "model"; }
    if (/\.comp$/i.test(filename)) { return "model"; }
    if (/\.tesc$/i.test(filename)) { return "model"; }
    if (/\.tese$/i.test(filename)) { return "model"; }
    if (/\.cginc$/i.test(filename)) { return "model"; }
    if (/\.fnc$/i.test(filename)) { return "model"; }
    if (/\.stl$/i.test(filename)) { return "model"; }
    if (/\.u3d$/i.test(filename)) { return "model"; }
    if (/\.(rviz|vcg)$/i.test(filename)) { return "model"; }
    if (/\.mo$/i.test(filename)) { return "modelica"; }
    if (/^modernizr([-\.]custom|-\d\.\d+)(\.\d+)?\.js$/i.test(filename)) { return "modernizr"; }
    if (/\.mod$/i.test(filename)) { return "modula2"; }
    if (/\.def$/i.test(filename)) { return "modula2"; }
    if (/\.m2$/i.test(filename)) { return "modula2"; }
    if (/\.i3$/i.test(filename)) { return "modula3"; }
    if (/\.ig$/i.test(filename)) { return "modula3"; }
    if (/\.m3$/i.test(filename)) { return "modula3"; }
    if (/\.mg$/i.test(filename)) { return "modula3"; }
    if (/^m3(makefile|overrides)$/i.test(filename)) { return "modula3"; }
    if (/\.moho$/i.test(filename)) { return "moho"; }
    if (/\.mohoaction$/i.test(filename)) { return "moho"; }
    if (/\.mohobrush$/i.test(filename)) { return "moho"; }
    if (/\.mohoexport$/i.test(filename)) { return "moho"; }
    if (/\.mohoproj$/i.test(filename)) { return "moho"; }
    if (/\.mohostyle$/i.test(filename)) { return "moho"; }
    if (/^moleculer\.config\.(js|json|ts)$/i.test(filename)) { return "moleculer"; }
    if (/^moment(-with-locales)?(\.min)?\.js$/i.test(filename)) { return "moment"; }
    if (/^moment-timezone(-with-data)?(-\d{4}-\d{4})?(\.min)?\.js$/i.test(filename)) { return "moment-tz"; }
    if (/\.monkey$/i.test(filename)) { return "monkey"; }
    if (/\.mtn-ignore$/i.test(filename)) { return "monotone"; }
    if (/\.moon$/i.test(filename)) { return "moon"; }
    if (/^mootools[^.]*\d+\.\d+(.\d+)?[^.]*\.js$/i.test(filename)) { return "mootools"; }
    if (/\.mrb$/i.test(filename)) { return "mruby"; }
    if (/\.dsql$/i.test(filename)) { return "msql"; }
    if (/\.mu$/i.test(filename)) { return "mupad"; }
    if (/\.chord$/i.test(filename)) { return "music"; }
    if (/\.midi?$/i.test(filename)) { return "music"; }
    if (/\.ly$/i.test(filename)) { return "music"; }
    if (/\.ily$/i.test(filename)) { return "music"; }
    if (/\.pd$/i.test(filename)) { return "music"; }
    if (/\.(hbs|handlebars|(mu)?stache)$/i.test(filename)) { return "mustache"; }
    if (/^(hbs|htmlbars|handlebars)$/i.test(filename)) { return "mustache"; }
    if (/\.nanorc$/i.test(filename)) { return "nano"; }
    if (/^\.?nanoc\.ya?ml$/i.test(filename)) { return "nanoc"; }
    if (/\.build$/i.test(filename)) { return "nant"; }
    if (/\.nasm$/i.test(filename)) { return "nasm"; }
    if (/\.ncl$/i.test(filename)) { return "earth"; }
    if (/\.nd?proj$/i.test(filename)) { return "ndepend"; }
    if (/\.neko$/i.test(filename)) { return "neko"; }
    if (/^run\.n$/.test(filename)) { return "neko"; }
    if (/\.cyp(her)?$/i.test(filename)) { return "neo4j"; }
    if (/\.axs$/i.test(filename)) { return "amx"; }
    if (/\.axi$/i.test(filename)) { return "amx"; }
    if (/\.nlogo$/i.test(filename)) { return "netlogo"; }
    if (/^netlify\.toml$/i.test(filename)) { return "netlify"; }
    if (/^newrelic\.yml/i.test(filename)) { return "newrelic"; }
    if (/\.nf$/i.test(filename)) { return "nextflow"; }
    if (/^nextflow\.config$/i.test(filename)) { return "nextflow"; }
    if (/^nestconfig\.json$/i.test(filename)) { return "nestjs"; }
    if (/\.pbm$/i.test(filename)) { return "image"; }
    if (/\.pgm$/i.test(filename)) { return "image"; }
    if (/\.ppm$/i.test(filename)) { return "image"; }
    if (/\.pnm$/i.test(filename)) { return "image"; }
    if (/^nginx(\.[-\w]+)*\.conf$/i.test(filename)) { return "nginx"; }
    if (/\.nginxconf$/i.test(filename)) { return "nginx"; }
    if (/\.nib$/i.test(filename)) { return "nib"; }
    if (/^nightwatch\.conf(ig)?\.js$/i.test(filename)) { return "nightwatch"; }
    if (/\.nim(rod)?$/i.test(filename)) { return "nimrod"; }
    if (/\.ninja$/i.test(filename)) { return "shuriken"; }
    if (/\.ninja\.d$/i.test(filename)) { return "shuriken"; }
    if (/\.n64$/i.test(filename)) { return "n64"; }
    if (/\.z64$/i.test(filename)) { return "n64"; }
    if (/\.nit$/i.test(filename)) { return "nit"; }
    if (/\.nix$/i.test(filename)) { return "nix"; }
    if (/nixos$/i.test(filename)) { return "nix"; }
    if (/\.nse$/i.test(filename)) { return "nmap"; }
    if (/\.njs$/i.test(filename)) { return "node"; }
    if (/\.nvmrc$/i.test(filename)) { return "node"; }
    if (/\.node$/i.test(filename)) { return "node"; }
    if (/\.node-version$/i.test(filename)) { return "node"; }
    if (/^BUNDLED_NODE_VERSION$/.test(filename)) { return "node"; }
    if (/^nodemon\.json$|\.nodemonignore$/i.test(filename)) { return "nodemon"; }
    if (/\.nomad$/i.test(filename)) { return "nomad"; }
    if (/^normalize(\.min)?\.(css|less|scss|styl)$/i.test(filename)) { return "normalize"; }
    if (/^(package\.json|\.npmignore|\.?npmrc|npm-debug\.log|npm-shrinkwrap\.json|package-lock\.json)$/i.test(filename)) { return "npm"; }
    if (/\.nsi$/i.test(filename)) { return "nsis"; }
    if (/\.nsh$/i.test(filename)) { return "nsis"; }
    if (/\.nu$/i.test(filename)) { return "recycle"; }
    if (/^Nukefile$/.test(filename)) { return "recycle"; }
    if (/\.nuspec$/i.test(filename)) { return "nuget"; }
    if (/\.pkgproj$/i.test(filename)) { return "nuget"; }
    if (/\.numpy$/i.test(filename)) { return "numpy"; }
    if (/\.numpyw$/i.test(filename)) { return "numpy"; }
    if (/\.numsc$/i.test(filename)) { return "numpy"; }
    if (/\.(nunjucks|njk)$/i.test(filename)) { return "nunjucks"; }
    if (/^nuxt\.config\.[jt]s$/i.test(filename)) { return "nuxt"; }
    if (/\.nxc$/i.test(filename)) { return "nxc"; }
    if (/\.mm?$/i.test(filename)) { return "objc"; }
    if (/\.pch$/i.test(filename)) { return "objc"; }
    if (/\.x$/i.test(filename)) { return "objc"; }
    if (/\.j$/i.test(filename)) { return "objj"; }
    if (/\.sj$/i.test(filename)) { return "objj"; }
    if (/\.ml$/i.test(filename)) { return "ocaml"; }
    if (/\.mli$/i.test(filename)) { return "ocaml"; }
    if (/\.eliom$/i.test(filename)) { return "ocaml"; }
    if (/\.eliomi$/i.test(filename)) { return "ocaml"; }
    if (/\.ml4$/i.test(filename)) { return "ocaml"; }
    if (/\.mll$/i.test(filename)) { return "ocaml"; }
    if (/\.mly$/i.test(filename)) { return "ocaml"; }
    if (/\.octave$/i.test(filename)) { return "octave"; }
    if (/\.octave_hist$/i.test(filename)) { return "octave"; }
    if (/\.octaverc$/i.test(filename)) { return "octave"; }
    if (/\.ooc$/i.test(filename)) { return "ooc"; }
    if (/\.opa$/i.test(filename)) { return "opa"; }
    if (/\.opencl$/i.test(filename)) { return "opencl"; }
    if (/\.(p|abl)$/i.test(filename)) { return "progress"; }
    if (/^(progress|openedge|abl)$/i.test(filename)) { return "progress"; }
    if (/\.(glslv?|gsh|gshader)$/i.test(filename)) { return "opengl"; }
    if (/^(GLSL|GLslang)$/i.test(filename)) { return "opengl"; }
    if (/\.(vert|vrx|vertex|vsh(ader)?)$/i.test(filename)) { return "vertex"; }
    if (/\.(fra?g|fp|fsh|fshader)$/i.test(filename)) { return "vertex"; }
    if (/\.odt$/i.test(filename)) { return "openoffice"; }
    if (/\.ott$/i.test(filename)) { return "openoffice"; }
    if (/\.fodt$/i.test(filename)) { return "openoffice"; }
    if (/\.ods$/i.test(filename)) { return "openoffice"; }
    if (/\.ots$/i.test(filename)) { return "openoffice"; }
    if (/\.fods$/i.test(filename)) { return "openoffice"; }
    if (/\.odp$/i.test(filename)) { return "openoffice"; }
    if (/\.otp$/i.test(filename)) { return "openoffice"; }
    if (/\.fodp$/i.test(filename)) { return "openoffice"; }
    if (/\.odg$/i.test(filename)) { return "openoffice"; }
    if (/\.otg$/i.test(filename)) { return "openoffice"; }
    if (/\.fodg$/i.test(filename)) { return "openoffice"; }
    if (/\.odf$/i.test(filename)) { return "openoffice"; }
    if (/\.odb$/i.test(filename)) { return "openoffice"; }
    if (/\.scad$/i.test(filename)) { return "scad"; }
    if (/\.jscad$/i.test(filename)) { return "scad"; }
    if (/\.hlb$/i.test(filename)) { return "openvms"; }
    if (/\.ovpn$/i.test(filename)) { return "openvpn"; }
    if (/\.org$/i.test(filename)) { return "org"; }
    if (/\.dmg$/i.test(filename)) { return "osx"; }
    if (/\.ox$/i.test(filename)) { return "ox"; }
    if (/\.oxh$/i.test(filename)) { return "ox"; }
    if (/\.oxo$/i.test(filename)) { return "ox"; }
    if (/\.oxygene$/i.test(filename)) { return "oxygene"; }
    if (/\.oz$/i.test(filename)) { return "oz"; }
    if (/\.p4$/i.test(filename)) { return "p4"; }
    if (/Cargo\.toml$/i.test(filename)) { return "package"; }
    if (/Cargo\.lock$/i.test(filename)) { return "package"; }
    if (/\.packages$/i.test(filename)) { return "package"; }
    if (/^pubspec\.lock$/i.test(filename)) { return "package"; }
    if (/^pubspec\.ya?ml$/i.test(filename)) { return "package"; }
    if (/^paket\.(dependencies|lock|references|local|template)$/i.test(filename)) { return "package"; }
    if (/\.pan$/i.test(filename)) { return "pan"; }
    if (/\.psc$/i.test(filename)) { return "papyrus"; }
    if (/\.parrot$/i.test(filename)) { return "parrot"; }
    if (/\.pasm$/i.test(filename)) { return "parrot"; }
    if (/\.pir$/i.test(filename)) { return "parrot"; }
    if (/\.pas(cal)?$/i.test(filename)) { return "pascal"; }
    if (/\.lpr$/i.test(filename)) { return "pascal"; }
    if (/\.patch$/i.test(filename)) { return "patch"; }
    if (/\.pwn$/i.test(filename)) { return "pawn"; }
    if (/\.pcd$/i.test(filename)) { return "pcd"; }
    if (/\.pdf$/i.test(filename)) { return "icon-file-pdf"; }
    if (/\.pegjs$/i.test(filename)) { return "peg"; }
    if (/\.pegcoffee$/i.test(filename)) { return "peg"; }
    if (/\.p(er)?l$/i.test(filename)) { return "perl"; }
    if (/\.al$/i.test(filename)) { return "perl"; }
    if (/\.ph$/i.test(filename)) { return "perl"; }
    if (/\.plx$/i.test(filename)) { return "perl"; }
    if (/\.pm$/i.test(filename)) { return "perl"; }
    if (/\.(psgi|xs)$/i.test(filename)) { return "perl"; }
    if (/\.pl6$/i.test(filename)) { return "perl6"; }
    if (/\.[tp]6$|\.6pl$/i.test(filename)) { return "perl6"; }
    if (/\.(pm6|p6m)$/i.test(filename)) { return "perl6"; }
    if (/\.6pm$/i.test(filename)) { return "perl6"; }
    if (/\.nqp$/i.test(filename)) { return "perl6"; }
    if (/\.p6l$/i.test(filename)) { return "perl6"; }
    if (/\.pod6$/i.test(filename)) { return "perl6"; }
    if (/^Rexfile$/.test(filename)) { return "perl6"; }
    if (/\.volt$/i.test(filename)) { return "phalcon"; }
    if (/\.php([st\d]|_cs)?$/i.test(filename)) { return "php"; }
    if (/^Phakefile/.test(filename)) { return "php"; }
    if (/^phpunit\.xml$/i.test(filename)) { return "phpunit"; }
    if (/^phoenix\.ex$/i.test(filename)) { return "phoenix"; }
    if (/^phoenix\.js$/i.test(filename)) { return "phoenix"; }
    if (/^\.phraseapp\.ya?ml$/i.test(filename)) { return "phraseapp"; }
    if (/\.pkl$/i.test(filename)) { return "pickle"; }
    if (/\.p8$/i.test(filename)) { return "pico8"; }
    if (/^pico\W8$/i.test(filename)) { return "pico8"; }
    if (/^Pipfile(\.lock)?$/i.test(filename)) { return "pipenv"; }
    if (/\.pike$/i.test(filename)) { return "pike"; }
    if (/\.pmod$/i.test(filename)) { return "pike"; }
    if (/^platformio\.ini$/i.test(filename)) { return "platformio"; }
    if (/\.(pls|pck|pks|plb|plsql|pkb)$/i.test(filename)) { return "sql"; }
    if (/^ecosystem.conf(ig)?./i.test(filename)) { return "pm2"; }
    if (/\.pod$/i.test(filename)) { return "pod"; }
    if (/\.pogo$/i.test(filename)) { return "pogo"; }
    if (/^polymer\.json$/i.test(filename)) { return "polymer"; }
    if (/\.pony$/i.test(filename)) { return "pony"; }
    if (/\.p(ost)?css$/i.test(filename)) { return "postcss"; }
    if (/\.sss$/i.test(filename)) { return "postcss"; }
    if (/\.postcssrc(\.(js|json|ya?ml))?$/i.test(filename)) { return "postcss"; }
    if (/\bpostcss\.config\.js$/i.test(filename)) { return "postcss"; }
    if (/\.pgsql$/i.test(filename)) { return "pgsql"; }
    if (/PL\/pgSQL$/i.test(filename)) { return "pgsql"; }
    if (/\.ps$/i.test(filename)) { return "postscript"; }
    if (/\.eps$/i.test(filename)) { return "postscript"; }
    if (/\.pfa$/i.test(filename)) { return "postscript"; }
    if (/\.a[fm]m$/i.test(filename)) { return "postscript"; }
    if (/\.gsf$/i.test(filename)) { return "postscript"; }
    if (/\.pov$/i.test(filename)) { return "povray"; }
    if (/\.pbl$/i.test(filename)) { return "powerbuilder"; }
    if (/\.pbt$/i.test(filename)) { return "powerbuilder"; }
    if (/\.srw$/i.test(filename)) { return "powerbuilder"; }
    if (/\.sru$/i.test(filename)) { return "powerbuilder"; }
    if (/\.srp$/i.test(filename)) { return "powerbuilder"; }
    if (/\.sra$/i.test(filename)) { return "powerbuilder"; }
    if (/\.srj$/i.test(filename)) { return "powerbuilder"; }
    if (/\.ps1$/i.test(filename)) { return "powershell"; }
    if (/\.psd1$/i.test(filename)) { return "powershell"; }
    if (/\.psm1$/i.test(filename)) { return "powershell"; }
    if (/\.ps1xml$/i.test(filename)) { return "powershell"; }
    if (/^\.pre-commit\b.*\.ya?ml$/i.test(filename)) { return "precommit"; }
    if (/\.prettierrc(\.(js|json|ya?ml))?$|^prettier\.config\.js$/i.test(filename)) { return "prettier"; }
    if (/\.prettierignore$/i.test(filename)) { return "prettier"; }
    if (/\.ppd$/i.test(filename)) { return "print"; }
    if (/\.prisma$/i.test(filename)) { return "prisma"; }
    if (/^project\.pros$/i.test(filename)) { return "pros"; }
    if (/\.pde$/i.test(filename)) { return "processing"; }
    if (/\.pro$/i.test(filename)) { return "prolog"; }
    if (/\.prolog$/i.test(filename)) { return "prolog"; }
    if (/\.yap$/i.test(filename)) { return "prolog"; }
    if (/\.spin$/i.test(filename)) { return "propeller"; }
    if (/\.proselintrc$/i.test(filename)) { return "proselint"; }
    if (/^protractor\.(conf|config)\./i.test(filename)) { return "protractor"; }
    if (/\.pug$/i.test(filename)) { return "pug"; }
    if (/^\.pug-lintrc/i.test(filename)) { return "pug"; }
    if (/^\.?pullapprove\.ya?ml$/i.test(filename)) { return "pullapprove"; }
    if (/\.pp$/i.test(filename)) { return "puppet"; }
    if (/\.epp$/i.test(filename)) { return "puppet"; }
    if (/Modulefile$/i.test(filename)) { return "puppet"; }
    if (/\.pb$/i.test(filename)) { return "purebasic"; }
    if (/\.pbi$/i.test(filename)) { return "purebasic"; }
    if (/\.purs$/i.test(filename)) { return "purescript"; }
    if (/^requirements\.in$/i.test(filename)) { return "pypi"; }
    if (/\.arr$/i.test(filename)) { return "pyret"; }
    if (/\.py$/i.test(filename)) { return "python"; }
    if (/\.ipy$/i.test(filename)) { return "python"; }
    if (/\.isolate$/i.test(filename)) { return "python"; }
    if (/\.pep$/i.test(filename)) { return "python"; }
    if (/\.gyp$/i.test(filename)) { return "python"; }
    if (/\.gypi$/i.test(filename)) { return "python"; }
    if (/\.pyde$/i.test(filename)) { return "python"; }
    if (/\.pyp$/i.test(filename)) { return "python"; }
    if (/\.pyt$/i.test(filename)) { return "python"; }
    if (/\.py3$/i.test(filename)) { return "python"; }
    if (/\.pyi$/i.test(filename)) { return "python"; }
    if (/\.pyw$/i.test(filename)) { return "python"; }
    if (/\.tac$/i.test(filename)) { return "python"; }
    if (/\.wsgi$/i.test(filename)) { return "python"; }
    if (/\.xpy$/i.test(filename)) { return "python"; }
    if (/\.smk$/i.test(filename)) { return "python"; }
    if (/\.rpy$/i.test(filename)) { return "python"; }
    if (/\.?(pypirc|pythonrc|python-venv)$/i.test(filename)) { return "python"; }
    if (/^(SConstruct|SConscript)$/.test(filename)) { return "python"; }
    if (/^(Snakefile|WATCHLISTS)$/.test(filename)) { return "python"; }
    if (/^wscript$/.test(filename)) { return "python"; }
    if (/\.q$/i.test(filename)) { return "kx"; }
    if (/\.k$/i.test(filename)) { return "kx"; }
    if (/\.qvw$/i.test(filename)) { return "qlik"; }
    if (/\.qvd$/i.test(filename)) { return "qlik"; }
    if (/\.qml$/i.test(filename)) { return "qt"; }
    if (/\.qmlproject$/i.test(filename)) { return "qt"; }
    if (/\.qbs$/i.test(filename)) { return "qt"; }
    if (/^quasar\.conf\.js$/i.test(filename)) { return "quasar"; }
    if (/\.(r|Rprofile|Rhistory|rsx|rd)$/i.test(filename)) { return "r"; }
    if (/^(Rscript|splus|Rlang)$/i.test(filename)) { return "r"; }
    if (/\.rkt$/i.test(filename)) { return "racket"; }
    if (/\.rktd$/i.test(filename)) { return "racket"; }
    if (/\.rktl$/i.test(filename)) { return "racket"; }
    if (/\.scrbl$/i.test(filename)) { return "racket"; }
    if (/\.raml$/i.test(filename)) { return "raml"; }
    if (/^raphael(\.min|\.no-deps)*\.js$/i.test(filename)) { return "raphael"; }
    if (/\.rsc$/i.test(filename)) { return "rascal"; }
    if (/^\.remarkrc(\.(js|json|ya?ml))?$/i.test(filename)) { return "remark"; }
    if (/\.rdoc$/i.test(filename)) { return "rdoc"; }
    if (/^react(-[^.]*)?\.js$/i.test(filename)) { return "react"; }
    if (/\.react\.js$/i.test(filename)) { return "react"; }
    if (/^README(\b|_)|^(licen[sc]es?(\.mysql)?|(read|readme|click|delete|keep|test)\.me)$|\.(readme|1st|licen[sc]es?)$/i.test(filename)) { return "book"; }
    if (/^(notice|bugs|changes|change[-_]?log([-._]?\d+)?|contribute|contributing|contributors|copying(\.regex)?|faq|hacking|history|install|maintainers|manifest|more\.stuff|notes|problems|projects|revision|terms|thanks|warnings)(_\w+)?$/i.test(filename)) { return "book"; }
    if (/\b(changelog|copying(v?\d)?|install|read[-_]?me)\b|^licen[sc]es?[-._]/i.test(filename)) { return "book"; }
    if (/^news([-_.]?[-\d]+)?$/i.test(filename)) { return "book"; }
    if (/^zork\d\.(?!pre$|pur$)[a-z]+$/.test(filename)) { return "book"; }
    if (/^zork\d\.doc$/.test(filename)) { return "book"; }
    if (/\.changes$/i.test(filename)) { return "book"; }
    if (/\.faq$/i.test(filename)) { return "book"; }
    if (/\.rbbas$/i.test(filename)) { return "xojo"; }
    if (/\.rbfrm$/i.test(filename)) { return "xojo"; }
    if (/\.rbmnu$/i.test(filename)) { return "xojo"; }
    if (/\.rbres$/i.test(filename)) { return "xojo"; }
    if (/\.rbtbar$/i.test(filename)) { return "xojo"; }
    if (/\.rbuistate$/i.test(filename)) { return "xojo"; }
    if (/\.re$/i.test(filename)) { return "reason"; }
    if (/\.rei$/i.test(filename)) { return "reason"; }
    if (/\.reb(ol)?$/i.test(filename)) { return "rebol"; }
    if (/\.r2$/i.test(filename)) { return "rebol"; }
    if (/\.r3$/i.test(filename)) { return "rebol"; }
    if (/\.red$/i.test(filename)) { return "red"; }
    if (/\.reds$/i.test(filename)) { return "red"; }
    if (/\.rpm(macros)?$/i.test(filename)) { return "red-hat"; }
    if (/\.spec$/i.test(filename)) { return "red-hat"; }
    if (/\.reek$/i.test(filename)) { return "reek"; }
    if (/\.regexp?$/i.test(filename)) { return "regex"; }
    if (/^require([-.]min|dev)?\.js$/i.test(filename)) { return "requirejs"; }
    if (/\.re?st(\.txt)?$/i.test(filename)) { return "rst"; }
    if (/^re?st$/i.test(filename)) { return "rst"; }
    if (/\.rexx?$/i.test(filename)) { return "rexx"; }
    if (/\.pprx$/i.test(filename)) { return "rexx"; }
    if (/\.3dm$/i.test(filename)) { return "rhino"; }
    if (/\.rvb$/i.test(filename)) { return "rhino"; }
    if (/^riemann\.config$/i.test(filename)) { return "clojure"; }
    if (/\.ring$/i.test(filename)) { return "ring"; }
    if (/\.tag$/i.test(filename)) { return "riot"; }
    if (/\.robot$/i.test(filename)) { return "robot"; }
    if (/^robots\.txt$/i.test(filename)) { return "robots"; }
    if (/^rollup\.config\./i.test(filename)) { return "rollup"; }
    if (/\.rg$/i.test(filename)) { return "clojure"; }
    if (/\.rspec$/i.test(filename)) { return "rspec"; }
    if (/\.rss$/i.test(filename)) { return "rss"; }
    if (/\.rproj$/i.test(filename)) { return "rstudio"; }
    if (/\.(rb|ru|ruby|erb|gemspec|god|mspec|pluginspec|podspec|rabl|rake|opal)$/i.test(filename)) { return "ruby"; }
    if (/^\.?(irbrc|gemrc|pryrc|ruby-(gemset|version))$/i.test(filename)) { return "ruby"; }
    if (/^(Appraisals|(Rake|App|[bB]uild|Cap|Danger|Deliver|Fast|Guard|Jar|Maven|Pod|Puppet|Snap)file(\.lock)?)$/.test(filename)) { return "ruby"; }
    if (/\.(jbuilder|rbuild|rb[wx]|builder)$/i.test(filename)) { return "ruby"; }
    if (/^rails$/.test(filename)) { return "ruby"; }
    if (/\.watchr$/i.test(filename)) { return "ruby"; }
    if (/^\.rubocop(_todo)?\.ya?ml$/i.test(filename)) { return "rubocop"; }
    if (/\.rs$/i.test(filename)) { return "rust"; }
    if (/\.rlib$/i.test(filename)) { return "rust"; }
    if (/^rust-toolchain$/.test(filename)) { return "rust"; }
    if (/\.san$/i.test(filename)) { return "san"; }
    if (/\.webarchive$/i.test(filename)) { return "safari"; }
    if (/\.sage$/i.test(filename)) { return "sage"; }
    if (/\.sagews$/i.test(filename)) { return "sage"; }
    if (/\.sls$/i.test(filename)) { return "saltstack"; }
    if (/^Salt(State)?$/i.test(filename)) { return "saltstack"; }
    if (/\.sas$/i.test(filename)) { return "sas"; }
    if (/\.scss$/i.test(filename)) { return "sass"; }
    if (/\.sass$/i.test(filename)) { return "sass"; }
    if (/^\.sassrc(\.js)?$/i.test(filename)) { return "sass"; }
    if (/\.sbt$/i.test(filename)) { return "sbt"; }
    if (/\.(sc|scala)$/i.test(filename)) { return "scala"; }
    if (/\.kojo$/i.test(filename)) { return "scala"; }
    if (/\.scm$/i.test(filename)) { return "scheme"; }
    if (/\.sld$/i.test(filename)) { return "scheme"; }
    if (/\.sps$/i.test(filename)) { return "scheme"; }
    if (/\.scilla$/i.test(filename)) { return "scilla"; }
    if (/\.sci$/i.test(filename)) { return "scilab"; }
    if (/\.sce$/i.test(filename)) { return "scilab"; }
    if (/\.tst$/i.test(filename)) { return "scilab"; }
    if (/\.scrutinizer\.yml$/i.test(filename)) { return "scrutinizer"; }
    if (/\.secret$/i.test(filename)) { return "secret"; }
    if (/\.self$/i.test(filename)) { return "self"; }
    if (/^sencha(\.min)?\.js$/i.test(filename)) { return "sencha"; }
    if (/\.sentryclirc$/i.test(filename)) { return "sentry"; }
    if (/\.csv$/i.test(filename)) { return "graph"; }
    if (/\.(tab|tsv)$/i.test(filename)) { return "graph"; }
    if (/\.dif$/i.test(filename)) { return "graph"; }
    if (/\.slk$/i.test(filename)) { return "graph"; }
    if (/\.prn$/i.test(filename)) { return "graph"; }
    if (/(^|\.)serverless\.ya?ml$/i.test(filename)) { return "serverless"; }
    if (/\.sfproj$/i.test(filename)) { return "sf"; }
    if (/\.sequelizerc$/i.test(filename)) { return "sequelize"; }
    if (/\.(sgi|iris)$/i.test(filename)) { return "sgi"; }
    if (/\.(sh|rc|bats|bash|tool|install|command)$/i.test(filename)) { return "terminal"; }
    if (/^(\.?bash(rc|[-_]?(profile|login|logout|history|prompt))|_osc|config|install-sh|PKGBUILD)$/i.test(filename)) { return "terminal"; }
    if (/\.(ksh|mksh|pdksh)$/i.test(filename)) { return "terminal"; }
    if (/\.sh-session$/i.test(filename)) { return "terminal"; }
    if (/\.zsh(-theme|_history)?$|^\.?(antigen|zpreztorc|zlogin|zlogout|zprofile|zshenv|zshrc)$/i.test(filename)) { return "terminal"; }
    if (/\.fish$|^\.fishrc$/i.test(filename)) { return "terminal"; }
    if (/^\.?(login|profile)$/.test(filename)) { return "terminal"; }
    if (/\.inputrc$/i.test(filename)) { return "terminal"; }
    if (/\.tmux$/i.test(filename)) { return "terminal"; }
    if (/^(configure|config\.(guess|rpath|status|sub)|depcomp|libtool|compile)$/.test(filename)) { return "terminal"; }
    if (/^\/(private\/)?etc\/([^\/]+\/)*(profile$|nanorc$|rc\.|csh\.)/i.test(filename)) { return "terminal"; }
    if (/^\.?cshrc$/i.test(filename)) { return "terminal"; }
    if (/\.profile$/i.test(filename)) { return "terminal"; }
    if (/\.tcsh$/i.test(filename)) { return "terminal"; }
    if (/\.csh$/i.test(filename)) { return "terminal"; }
    if (/\.awk$/i.test(filename)) { return "terminal"; }
    if (/\.gawk$/i.test(filename)) { return "terminal"; }
    if (/\.mawk$/i.test(filename)) { return "terminal"; }
    if (/\.nawk$/i.test(filename)) { return "terminal"; }
    if (/\.auk$/i.test(filename)) { return "terminal"; }
    if (/\.shen$/i.test(filename)) { return "shen"; }
    if (/^shipitfile(\b.+)?\.js$/i.test(filename)) { return "shipit"; }
    if (/^shippable\.ya?ml$/i.test(filename)) { return "shippable"; }
    if (/\.liquid$/i.test(filename)) { return "shopify"; }
    if (/\.sigils$/i.test(filename)) { return "sigils"; }
    if (/\.ss$/i.test(filename)) { return "silverstripe"; }
    if (/\.sketch$/i.test(filename)) { return "sketch"; }
    if (/\.layout$/i.test(filename)) { return "sketchup-lo"; }
    if (/\.skp$/i.test(filename)) { return "sketchup-mk"; }
    if (/\.style$/i.test(filename)) { return "sketchup-sb"; }
    if (/\.eskip$/i.test(filename)) { return "anchor"; }
    if (/\.sl$/i.test(filename)) { return "slash"; }
    if (/\.tpl$/i.test(filename)) { return "smarty"; }
    if (/^snapcraft\.ya?ml$/i.test(filename)) { return "snapcraft"; }
    if (/^snap\.svg([-.]min)?\.js$/i.test(filename)) { return "snapsvg"; }
    if (/\.snort$/i.test(filename)) { return "snort"; }
    if (/\.snyk$/i.test(filename)) { return "snyk"; }
    if (/^\.solidarity(\.json)?$/i.test(filename)) { return "solidarity"; }
    if (/\.sol(idity)?$/i.test(filename)) { return "solidity"; }
    if (/\.(sma|sp)$/i.test(filename)) { return "clojure"; }
    if (/\.inc$/i.test(filename)) { return "clojure"; }
    if (/(^|\.)spacemacs$/i.test(filename)) { return "spacemacs"; }
    if (/\.sparql$/i.test(filename)) { return "sparql"; }
    if (/\.rq$/i.test(filename)) { return "sparql"; }
    if (/\.jsont$/i.test(filename)) { return "squarespace"; }
    if (/^(json[-_]?t|json[-_\s]?template)$/i.test(filename)) { return "squarespace"; }
    if (/\.sqf$/i.test(filename)) { return "sqf"; }
    if (/\.hqf$/i.test(filename)) { return "sqf"; }
    if (/\.(my)?sql$/i.test(filename)) { return "sql"; }
    if (/\.ddl$/i.test(filename)) { return "sql"; }
    if (/\.udf$/i.test(filename)) { return "sql"; }
    if (/\.hql$/i.test(filename)) { return "sql"; }
    if (/\.viw$/i.test(filename)) { return "sql"; }
    if (/\.prc$/i.test(filename)) { return "sql"; }
    if (/\.cql$/i.test(filename)) { return "sql"; }
    if (/\.db2$/i.test(filename)) { return "sql"; }
    if (/\.4gl$/i.test(filename)) { return "sql"; }
    if (/\.per$/i.test(filename)) { return "sql"; }
    if (/\.spsql$/i.test(filename)) { return "sql"; }
    if (/\.sqlite$/i.test(filename)) { return "sqlite"; }
    if (/\.sqlite3$/i.test(filename)) { return "sqlite"; }
    if (/\.db$/i.test(filename)) { return "sqlite"; }
    if (/\.db3$/i.test(filename)) { return "sqlite"; }
    if (/\.nut$/i.test(filename)) { return "squirrel"; }
    if (/\.pub$/i.test(filename)) { return "key"; }
    if (/\.pem$/i.test(filename)) { return "key"; }
    if (/\.key$/i.test(filename)) { return "key"; }
    if (/\.crt$/i.test(filename)) { return "key"; }
    if (/\.der$/i.test(filename)) { return "key"; }
    if (/^id_rsa/.test(filename)) { return "key"; }
    if (/\.glyphs\d*License$/i.test(filename)) { return "key"; }
    if (/^(master\.)?passwd$/i.test(filename)) { return "key"; }
    if (/^git-credential-osxkeychain$/i.test(filename)) { return "key"; }
    if (/\.ssh[\/\\][^\/\\\s]+$/.test(filename)) { return "key"; }
    if (/\.stan$/i.test(filename)) { return "stan"; }
    if (/\.do$/i.test(filename)) { return "stata"; }
    if (/\.ado$/i.test(filename)) { return "stata"; }
    if (/\.doh$/i.test(filename)) { return "stata"; }
    if (/\.ihlp$/i.test(filename)) { return "stata"; }
    if (/\.mata$/i.test(filename)) { return "stata"; }
    if (/\.matah$/i.test(filename)) { return "stata"; }
    if (/\.sthlp$/i.test(filename)) { return "stata"; }
    if (/\.stencil$/i.test(filename)) { return "stencil"; }
    if (/\.(story|stories)\.jsx?$/i.test(filename)) { return "storybook"; }
    if (/\.(story|stories)\.tsx?$/i.test(filename)) { return "storybook"; }
    if (/\.story$/i.test(filename)) { return "storyist"; }
    if (/\.strings$/i.test(filename)) { return "strings"; }
    if (/\.st\.css$/i.test(filename)) { return "stylable"; }
    if (/\.sc\.js$/i.test(filename)) { return "nailpolish"; }
    if (/\.sc\.jsx$/i.test(filename)) { return "nailpolish"; }
    if (/\.sc\.ts$/i.test(filename)) { return "nailpolish"; }
    if (/\.sc\.tsx$/i.test(filename)) { return "nailpolish"; }
    if (/^\.stylelintrc(\.|$)/i.test(filename)) { return "stylelint"; }
    if (/^stylelint\.config\.js$/i.test(filename)) { return "stylelint"; }
    if (/\.stylelint(ignore|cache)$/i.test(filename)) { return "stylelint"; }
    if (/\.(styl|stylus)$/i.test(filename)) { return "stylus"; }
    if (/\.(stTheme|sublime[-_](build|commands|completions|keymap|macro|menu|mousemap|project|settings|theme|workspace|metrics|session|snippet))$/i.test(filename)) { return "sublime"; }
    if (/\.sublime-syntax$/i.test(filename)) { return "sublime"; }
    if (/\.scd$/i.test(filename)) { return "scd"; }
    if (/\.svg$/i.test(filename)) { return "svg"; }
    if (/^(openapi|swagger)\.(json|yaml|yml)$/i.test(filename)) { return "swagger"; }
    if (/\.swagger-codegen-ignore$/i.test(filename)) { return "swagger"; }
    if (/\.swift$/i.test(filename)) { return "swift"; }
    if (/\.svelte$/i.test(filename)) { return "svelte"; }
    if (/\.sv$/i.test(filename)) { return "sysverilog"; }
    if (/\.svh$/i.test(filename)) { return "sysverilog"; }
    if (/\.vh$/i.test(filename)) { return "sysverilog"; }
    if (/\.toc$/i.test(filename)) { return "toc"; }
    if (/\.?c?tags$/i.test(filename)) { return "tag"; }
    if (/\.gemtags/i.test(filename)) { return "tag"; }
    if (/\.hgtags$|^localtags$/i.test(filename)) { return "tag"; }
    if (/^\.atom-socket-.+\.\d$/.test(filename)) { return "tag"; }
    if (/\.pid$/i.test(filename)) { return "tag"; }
    if (/^\.?tailwind(\.config)?\.(m?js|ts|coffee)$/i.test(filename)) { return "tailwind"; }
    if (/\.tcl$/i.test(filename)) { return "tcl"; }
    if (/\.adp$/i.test(filename)) { return "tcl"; }
    if (/\.tm$/i.test(filename)) { return "tcl"; }
    if (/\.exp$/i.test(filename)) { return "tcl"; }
    if (/^\.tkcvs/i.test(filename)) { return "tcl"; }
    if (/^\.tkdiffrc$/.test(filename)) { return "tcl"; }
    if (/\.tea$/i.test(filename)) { return "coffee"; }
    if (/\.tfignore$/i.test(filename)) { return "tfs"; }
    if (/tfs$/i.test(filename)) { return "tfs"; }
    if (/\.tl$/i.test(filename)) { return "telegram"; }
    if (/\.xps$/i.test(filename)) { return "telegram"; }
    if (/\.tt2?$/i.test(filename)) { return "tt"; }
    if (/\.tt3$/i.test(filename)) { return "tt"; }
    if (/\.tern-project$/i.test(filename)) { return "tern"; }
    if (/\.tern-config$/i.test(filename)) { return "tern"; }
    if (/\.tf(vars)?$/i.test(filename)) { return "terraform"; }
    if (/\.tf\.json$/i.test(filename)) { return "terraform"; }
    if (/\.tfstate(\.backup)?$/i.test(filename)) { return "terraform"; }
    if (/[._-](spec|test)s?\.((lit)?coffee|iced|cjsx)$/i.test(filename)) { return "test-coffee"; }
    if (/([\\\x2F])t\1t\d+(?:(?!\1).)+\.sh$/i.test(filename)) { return "test-generic"; }
    if (/\.test$/i.test(filename)) { return "test-generic"; }
    if (/\.xspec$/i.test(filename)) { return "test-generic"; }
    if (/[._-](spec|test)s?\.go$/i.test(filename)) { return "test-go"; }
    if (/[._-](spec|test)s?\.(hsc?|c2hs|lhs)$/i.test(filename)) { return "test-hs"; }
    if (/[._-](spec|test)s?\.([_ms]?js|js[bms]|es\d*)$/i.test(filename)) { return "test-js"; }
    if (/\.t$/i.test(filename)) { return "test-perl"; }
    if (/([\\\x2F])t\1(?:(?!\1).)+\.t$/i.test(filename)) { return "test-perl"; }
    if (/([\\\x2F])(test|spec)s?(\1((?!\1).)+)*\1((?!\1).)+[._-](spec|test)s?\.p(er)?l$/i.test(filename)) { return "test-perl"; }
    if (/[._-](spec|test)s?\.py(3|thon)?/i.test(filename)) { return "test-python"; }
    if (/([\\\x2F])(test|spec)s?(\1((?!\1).)+)*\1(((?!\1).)+[._-](?:spec|test)s?|(?:spec|test)s?[._-].+)\.py(3|thon)?$/i.test(filename)) { return "test-python"; }
    if (/[._-](spec|test)s?\.(jsx|react\.js)$/.test(filename)) { return "test-react"; }
    if (/[._-](spec|test)s?\.(rb|ruby)$/i.test(filename)) { return "test-ruby"; }
    if (/([\\\x2F])(t|tests?|specs?)\1+(?:(?!\1).)*\.(rb|ruby)$/.test(filename)) { return "test-ruby"; }
    if (/[._-](spec|test)s?\.rs$/i.test(filename)) { return "test-rust"; }
    if (/[._-](spec|test)s?\.ts$/i.test(filename)) { return "test-ts"; }
    if (/[._-](spec|test)s?\.tsx$/i.test(filename)) { return "test-ts"; }
    if (/\.tex$/i.test(filename)) { return "tex"; }
    if (/\.ltx$/i.test(filename)) { return "tex"; }
    if (/\.aux$/i.test(filename)) { return "tex"; }
    if (/\.sty$/i.test(filename)) { return "tex"; }
    if (/\.dtx$/i.test(filename)) { return "tex"; }
    if (/\.cls$/i.test(filename)) { return "tex"; }
    if (/\.ins$/i.test(filename)) { return "tex"; }
    if (/\.lbx$/i.test(filename)) { return "tex"; }
    if (/\.mkiv$/i.test(filename)) { return "tex"; }
    if (/\.mkvi$/i.test(filename)) { return "tex"; }
    if (/\.mkii$/i.test(filename)) { return "tex"; }
    if (/\.pgf$/i.test(filename)) { return "tex"; }
    if (/\.tikz$/i.test(filename)) { return "tex"; }
    if (/\.texi$/i.test(filename)) { return "tex"; }
    if (/^hyphen(ex)?\.(cs|den|det|fr|sv|us)$/.test(filename)) { return "tex"; }
    if (/\.te?xt$/i.test(filename)) { return "icon-file-text"; }
    if (/\.log$|^Terminal[-_\s]Saved[-_\s]Output$/i.test(filename)) { return "icon-file-text"; }
    if (/\.git[\/\\]description$/.test(filename)) { return "icon-file-text"; }
    if (/\.err$/i.test(filename)) { return "icon-file-text"; }
    if (/\.rtf$/i.test(filename)) { return "icon-file-text"; }
    if (/\.i?nfo$/i.test(filename)) { return "icon-file-text"; }
    if (/\.abt$/i.test(filename)) { return "icon-file-text"; }
    if (/\.ans$/i.test(filename)) { return "icon-file-text"; }
    if (/\.brf$/i.test(filename)) { return "icon-file-text"; }
    if (/\.dri$/i.test(filename)) { return "icon-file-text"; }
    if (/\.etx$/i.test(filename)) { return "icon-file-text"; }
    if (/\.gpi$/i.test(filename)) { return "icon-file-text"; }
    if (/\.irclog$/i.test(filename)) { return "icon-file-text"; }
    if (/\.more$/i.test(filename)) { return "icon-file-text"; }
    if (/\.msg$/i.test(filename)) { return "icon-file-text"; }
    if (/\.no$/i.test(filename)) { return "icon-file-text"; }
    if (/\.rpt$/i.test(filename)) { return "icon-file-text"; }
    if (/\.srt$/i.test(filename)) { return "icon-file-text"; }
    if (/\.sub$/i.test(filename)) { return "icon-file-text"; }
    if (/^(bug-report|fdl|for-release|tests)$/i.test(filename)) { return "icon-file-text"; }
    if (/\.(utxt|utf8)$/i.test(filename)) { return "icon-file-text"; }
    if (/\.weechatlog$/i.test(filename)) { return "icon-file-text"; }
    if (/\.uof$/i.test(filename)) { return "icon-file-text"; }
    if (/\.uot$/i.test(filename)) { return "icon-file-text"; }
    if (/\.uos$/i.test(filename)) { return "icon-file-text"; }
    if (/\.uop$/i.test(filename)) { return "icon-file-text"; }
    if (/\.textile$/i.test(filename)) { return "textile"; }
    if (/\.tmcg$/i.test(filename)) { return "textmate"; }
    if (/\.tmLanguage$/i.test(filename)) { return "textmate"; }
    if (/\.tmCommand$/i.test(filename)) { return "textmate"; }
    if (/\.tmPreferences$/i.test(filename)) { return "textmate"; }
    if (/\.tmSnippet$/i.test(filename)) { return "textmate"; }
    if (/\.tmTheme$/i.test(filename)) { return "textmate"; }
    if (/\.tmMacro$/i.test(filename)) { return "textmate"; }
    if (/\.yaml-tmlanguage$/i.test(filename)) { return "textmate"; }
    if (/\.JSON-tmLanguage$/i.test(filename)) { return "textmate"; }
    if (/\.thor$/i.test(filename)) { return "thor"; }
    if (/^Thorfile$/i.test(filename)) { return "thor"; }
    if (/\.8x[pk](\.txt)?$/i.test(filename)) { return "calc"; }
    if (/\.tipe$/i.test(filename)) { return "tipe"; }
    if (/\.tla$/i.test(filename)) { return "tla"; }
    if (/(\.|_|^)tmux\.conf$/i.test(filename)) { return "tmux"; }
    if (/\.toml$/i.test(filename)) { return "toml"; }
    if (/^.tgitconfig$/i.test(filename)) { return "tortoise"; }
    if (/^\.travis/i.test(filename)) { return "travis"; }
    if (/\.tsx$/i.test(filename)) { return "tsx"; }
    if (/\.ttcn3?$/i.test(filename)) { return "ttcn3"; }
    if (/\.tu$/i.test(filename)) { return "turing"; }
    if (/\.twig$/i.test(filename)) { return "twig"; }
    if (/\.tw$/i.test(filename)) { return "twine"; }
    if (/SugarCube$/i.test(filename)) { return "twine"; }
    if (/\.txl$/i.test(filename)) { return "txl"; }
    if (/^typedoc\.json$/i.test(filename)) { return "typedoc"; }
    if (/\.ts$/i.test(filename)) { return "ts"; }
    if (/^(ts|Type[-\s]*Script)$/i.test(filename)) { return "ts"; }
    if (/^typings\.json$/i.test(filename)) { return "typings"; }
    if (/\.(typoscript|tsconfig)$/i.test(filename)) { return "typo3"; }
    if (/typo3$/i.test(filename)) { return "typo3"; }
    if (/^uikit(\.min)?\.js$/i.test(filename)) { return "uikit"; }
    if (/\.unibeautifyrc$/i.test(filename)) { return "unibeautify"; }
    if (/^unibeautify\.config\.js$/i.test(filename)) { return "unibeautify"; }
    if (/\.unibeautifyrc\.js(on)?$/i.test(filename)) { return "unibeautify"; }
    if (/\.unibeautifyrc\.ya?ml$/i.test(filename)) { return "unibeautify"; }
    if (/\.anim$/i.test(filename)) { return "unity3d"; }
    if (/\.asset$/i.test(filename)) { return "unity3d"; }
    if (/\.mat$/i.test(filename)) { return "unity3d"; }
    if (/\.meta$/i.test(filename)) { return "unity3d"; }
    if (/\.prefab$/i.test(filename)) { return "unity3d"; }
    if (/\.unity$/i.test(filename)) { return "unity3d"; }
    if (/\.unityproj$/i.test(filename)) { return "unity3d"; }
    if (/\.uno$/i.test(filename)) { return "uno"; }
    if (/\.uc$/i.test(filename)) { return "unreal"; }
    if (/\.ur$/i.test(filename)) { return "urweb"; }
    if (/\.urs$/i.test(filename)) { return "urweb"; }
    if (/^([dv]8|v8[-_.][^.]*|mksnapshot|mkpeephole)$/i.test(filename)) { return "v8"; }
    if (/^\.v8flags\b/.test(filename)) { return "v8"; }
    if (/^Vagrantfile$/i.test(filename)) { return "vagrant"; }
    if (/\.vcl$/i.test(filename)) { return "varnish"; }
    if (/\.vm$/i.test(filename)) { return "velocity"; }
    if (/\.v$/i.test(filename)) { return "verilog"; }
    if (/\.veo$/i.test(filename)) { return "verilog"; }
    if (/\.vhdl$/i.test(filename)) { return "vhdl"; }
    if (/\.vhf$/i.test(filename)) { return "vhdl"; }
    if (/\.vhi$/i.test(filename)) { return "vhdl"; }
    if (/\.vho$/i.test(filename)) { return "vhdl"; }
    if (/\.vhs$/i.test(filename)) { return "vhdl"; }
    if (/\.vht$/i.test(filename)) { return "vhdl"; }
    if (/\.vhw$/i.test(filename)) { return "vhdl"; }
    if (/\.3gpp?$/i.test(filename)) { return "video"; }
    if (/\.(mp4|m4v|h264)$/i.test(filename)) { return "video"; }
    if (/\.avi$/i.test(filename)) { return "video"; }
    if (/\.mov$/i.test(filename)) { return "video"; }
    if (/\.mkv$/i.test(filename)) { return "video"; }
    if (/\.flv$/i.test(filename)) { return "video"; }
    if (/\.webm$/i.test(filename)) { return "video"; }
    if (/\.mpe?g$/i.test(filename)) { return "video"; }
    if (/\.(asf|wmv)$/i.test(filename)) { return "video"; }
    if (/\.(ogm|og[gv])$/i.test(filename)) { return "video"; }
    if (/\.(vim|[gn]?vimrc)$/i.test(filename)) { return "vim"; }
    if (/^[.gn_]?vim(rc|info)$/i.test(filename)) { return "vim"; }
    if (/\.vmb$/i.test(filename)) { return "vim"; }
    if (/\.ova$/i.test(filename)) { return "virtualbox"; }
    if (/\.ovf$/i.test(filename)) { return "virtualbox"; }
    if (/\.vhd$/i.test(filename)) { return "virtualbox"; }
    if (/\.vhdx$/i.test(filename)) { return "virtualbox"; }
    if (/\.vbox_version$/i.test(filename)) { return "virtualbox"; }
    if (/\.vbox(-prev)?$/i.test(filename)) { return "virtualbox"; }
    if (/\.(vba?|fr[mx]|bas)$/i.test(filename)) { return "vs"; }
    if (/\.vbhtml$/i.test(filename)) { return "vs"; }
    if (/\.vbs$/i.test(filename)) { return "vs"; }
    if (/\.vsix$/i.test(filename)) { return "vs"; }
    if (/\.csproj$/i.test(filename)) { return "vs"; }
    if (/\.vbproj$/i.test(filename)) { return "vs"; }
    if (/\.vcx?proj(\.[-\w]+)*$/i.test(filename)) { return "vs"; }
    if (/\.vssettings(\.json)?$/i.test(filename)) { return "vs"; }
    if (/\.vscodeignore(\.json)?$/i.test(filename)) { return "vs"; }
    if (/\.vstemplate$/i.test(filename)) { return "vs"; }
    if (/\.vsixmanifest$/i.test(filename)) { return "vs"; }
    if (/\.builds$/i.test(filename)) { return "vs"; }
    if (/\.sln$/i.test(filename)) { return "vs"; }
    if (/\.njsproj$/i.test(filename)) { return "vs"; }
    if (/\.vmdk$/i.test(filename)) { return "vmware"; }
    if (/\.nvram$/i.test(filename)) { return "vmware"; }
    if (/\.vmsd$/i.test(filename)) { return "vmware"; }
    if (/\.vmsn$/i.test(filename)) { return "vmware"; }
    if (/\.vmss$/i.test(filename)) { return "vmware"; }
    if (/\.vmtm$/i.test(filename)) { return "vmware"; }
    if (/\.vmx$/i.test(filename)) { return "vmware"; }
    if (/\.vmxf$/i.test(filename)) { return "vmware"; }
    if (/^\.vsts-ci\.ya?ml$/i.test(filename)) { return "vsts"; }
    if (/\.vue$/i.test(filename)) { return "vue"; }
    if (/^vue\.config\.js$/i.test(filename)) { return "vue"; }
    if (/^\.wallaby\.js$/i.test(filename)) { return "wallaby"; }
    if (/\.walt$/i.test(filename)) { return "walt"; }
    if (/\.watchmanconfig$|^watchman\.json$/i.test(filename)) { return "watchman"; }
    if (/\.wdl$/i.test(filename)) { return "wdl"; }
    if (/Workflow Description Language$/i.test(filename)) { return "wdl"; }
    if (/\.was?t$/i.test(filename)) { return "wasm"; }
    if (/\.wasm$/i.test(filename)) { return "wasm"; }
    if (/\.webgl$/i.test(filename)) { return "webgl"; }
    if (/\.owl$/i.test(filename)) { return "owl"; }
    if (/(^|\.)webpack(file)?(?=\.|$).*\.([jt]sx?|json)$/i.test(filename)) { return "webpack"; }
    if (/\.wxml$/i.test(filename)) { return "wechat"; }
    if (/\.wxss$/i.test(filename)) { return "wechat"; }
    if (/^wercker\.ya?ml$/i.test(filename)) { return "wercker"; }
    if (/\.bat$/i.test(filename)) { return "windows"; }
    if (/\.cmd$/i.test(filename)) { return "windows"; }
    if (/\.(exe|com|msi)$/i.test(filename)) { return "windows"; }
    if (/\.reg$/i.test(filename)) { return "windows"; }
    if (/\.wixproj$/i.test(filename)) { return "wix"; }
    if (/\.wixobj$/i.test(filename)) { return "wix"; }
    if (/\.wxs$/i.test(filename)) { return "wix"; }
    if (/\.wxi$/i.test(filename)) { return "wix"; }
    if (/\.wxl$/i.test(filename)) { return "wix"; }
    if (/^workbox-config\.js$/i.test(filename)) { return "workbox"; }
    if (/\.wurst$/i.test(filename)) { return "wurst"; }
    if (/WurstLang$/i.test(filename)) { return "wurst"; }
    if (/\.x10$/i.test(filename)) { return "x10"; }
    if (/xten$/i.test(filename)) { return "x10"; }
    if (/\.X(authority|clients|initrc|inputrc|profile|resources|session-errors|screensaver)$/i.test(filename)) { return "x11"; }
    if (/\.workbook$/i.test(filename)) { return "xamarin"; }
    if (/\.xc$/i.test(filename)) { return "xmos"; }
    if (/\.pbxproj$/i.test(filename)) { return "appstore"; }
    if (/\.pbxuser$/i.test(filename)) { return "appstore"; }
    if (/\.xccheckout$/i.test(filename)) { return "appstore"; }
    if (/\.xcplugindata$/i.test(filename)) { return "appstore"; }
    if (/\.xcrequiredplugins$/i.test(filename)) { return "appstore"; }
    if (/\.xcscheme$/i.test(filename)) { return "appstore"; }
    if (/\.xcscmblueprint$/i.test(filename)) { return "appstore"; }
    if (/\.xcsettings$/i.test(filename)) { return "appstore"; }
    if (/\.xcuserstate$/i.test(filename)) { return "appstore"; }
    if (/\.xcworkspacedata$/i.test(filename)) { return "appstore"; }
    if (/\.mode\dv3$/i.test(filename)) { return "appstore"; }
    if (/\.xojo_code$/i.test(filename)) { return "xojo"; }
    if (/\.xojo_menu$/i.test(filename)) { return "xojo"; }
    if (/\.xojo_report$/i.test(filename)) { return "xojo"; }
    if (/\.xojo_script$/i.test(filename)) { return "xojo"; }
    if (/\.xojo_toolbar$/i.test(filename)) { return "xojo"; }
    if (/\.xojo_window$/i.test(filename)) { return "xojo"; }
    if (/\.xsp-config$/i.test(filename)) { return "xpages"; }
    if (/\.xsp\.metadata$/i.test(filename)) { return "xpages"; }
    if (/\.xpl$/i.test(filename)) { return "xmos"; }
    if (/\.xproc$/i.test(filename)) { return "xmos"; }
    if (/\.(xquery|xq|xql|xqm|xqy)$/i.test(filename)) { return "sql"; }
    if (/\.xtend$/i.test(filename)) { return "xtend"; }
    if (/\.ya?ml$/i.test(filename)) { return "yaml"; }
    if (/^\.yaspellerrc($|\.)|^\.yaspeller\.json$/i.test(filename)) { return "yandex"; }
    if (/\.yang$/i.test(filename)) { return "yang"; }
    if (/\.yara?$/i.test(filename)) { return "yara"; }
    if (/^yarn\.lock$|\.yarn-metadata(\.json)?$/i.test(filename)) { return "yarn"; }
    if (/\.(yarnrc|yarnclean|yarn-integrity)$/i.test(filename)) { return "yarn"; }
    if (/\.yo-rc\.json$/i.test(filename)) { return "yeoman"; }
    if (/^(yahoo-|yui)[^.]*\.js$/i.test(filename)) { return "yui"; }
    if (/\.zpr$/i.test(filename)) { return "zbrush"; }
    if (/\.zep$/i.test(filename)) { return "zephir"; }
    if (/\.zig$/i.test(filename)) { return "zig"; }
    if (/\.(zimpl|zmpl|zpl)$/i.test(filename)) { return "zimpl"; }
    if (/\.zap$/i.test(filename)) { return "zork"; }
    if (/\.xzap$/i.test(filename)) { return "zork"; }
    if (/^s4\.errors$/i.test(filename)) { return "zork"; }
    if (/\.zabstr?$/i.test(filename)) { return "zork"; }
    if (/\.zil$/i.test(filename)) { return "zork"; }
    if (/\.mud$/i.test(filename)) { return "zork"; }
}
module.exports = matchIcon;